Хорошо, проблема в том, что я использовал browserify
для связывания зависимости sqlite3.Исключив sqlite3 с флагом --exclude
, проблема исчезла.
Кажется, проблема в том, что сборка sqlite3 генерирует файл sqlite3.js
, единственная цель которого - найти (и загрузить?) Встроенный node-sqlite3.node
бинарный - но только во время выполнения.Когда sqlite3 упакован и пакет запущен, он попытается найти двоичный файл, но не может, потому что мой пакет не находится в каталоге node_modules/sqlite
, он находится в моем каталоге сборки.Исключив sqlite3 из комплектации browserify, во время выполнения import * as sql from "sqlite3"
найдет node_modules/sqlite3/sqlite3.js
, найдет двоичный файл и затем загрузит его в программу.
Урок, как представляется, пока браузер знаеткак связать стандартные модули NodeJs, такие как fs
и path
, связывание пользовательских модулей собственного узла из npm не работает.Программа должна найти его во время выполнения.
Я ничего не знаю о внутренней работе NodeJ и о том, как программа знает, как искать sqlite3 в build/../node_modules/sqlite3
(я не знал, что этомог бы), поэтому я был бы рад, если бы кто-нибудь более знающий мог предоставить подробности.
Кроме того, даже после исключения sqlite3 у меня все еще были проблемы, потому что я не построил sqlite3 против моей версии электрона.Ресурсы для этого можно найти в электронное восстановление в общем случае или в случае sqlite3 в mapbox / node-sqlite3 в Установка раздел.