Вы можете просто передать различные файлы среды в Angular во время сборки, это позволит вам контролировать переменные среды, чтобы вы могли сказать, что это сборка веб-приложения или сборка электронного приложения.
https://angular.io/guide/build
EXTRA
Но если вы импортируете бинарные пакеты, то тут все становится сложнее. Я не думаю, что есть чистый способ сделать условный импорт. Мне не удалось найти способ сделать это чисто и поддерживать другой репозиторий для всех моих служб, которые должны импортировать двоичные файлы.
Чтобы импортировать двоичные файлы, вам также необходимо отредактировать некоторые настройки веб-пакета, чтобы указать angular не компилировать / включать двоичные файлы во время процесса сборки, чтобы вы могли использовать свои библиотеки, такие как mysqljs, для которых требуются двоичные файлы. Есть также некоторые настройки на электронном конце, чтобы сделать двоичные файлы совместимыми для разных платформ, например Windows, Mac, Linux. По сути это действительно боль, чтобы сделать это.
Ссылка на редактирование настроек webpack для угловых 7 +
https://github.com/manfredsteyer/ngx-build-plus
Я полностью предложу вам не делать этого, если у вас нет действительно веской причины, по которой вам нужно использовать эти библиотеки.
РЕДАКТИРОВАТЬ 10/1/19
Хорошо, я имел в виду MySqlJs, но, похоже, у него нет собственных модулей модулей. Нативные / двоичные модули в основном означают код javascript, который опирается на скомпилированные двоичные файлы c ++ (или любой родной язык, такой как rust ...).
В моем случае я использовал модули grpc, которые имеют встроенную зависимость. В итоге пришлось переключиться на grpc-web.
Я добавлю сюда несколько сносок, если они вам понадобятся
https://electronjs.org/docs/tutorial/using-native-node-modules
Node.js / npm - в любом случае, чтобы узнать, является ли пакет чистым JS или нет?