Я работаю над проектом ElectronJS и ExpressJS , чтобы создать приложение, которое запускает API в фоне и показатьсистемный трей с некоторыми функциями для управления и мониторинга этого API.
"electron": "^4.0.4",
"electron-builder": "^20.38.5",
Я использую electron-builder
до генерацию установщика для macOS и Windows (.exe
с nsis
и .dmg
) пакетами , содержащими мое express приложение, созданное API как есть.
Это значит, что я создаю его отдельно и вызываю его записьточка build/index.js
в моем электронном main.js , несмотря на то, что хук и все остальное в порядке в development env.Но когда я запускаю сборку, она показывает мне эту ошибку:
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Cannot find module 'express'
at Module._resolveFilename (internal/modules/cjs/loader.js:584:15)
at Function.Module._resolveFilename (/Users/username/WebstormProjects/my-api-monitor/release/mac/API monitor.app/Contents/Resources/electron.asar/common/reset-search-paths.js:43:12)
at Function.Module._load (internal/modules/cjs/loader.js:510:25)
at Module.require (internal/modules/cjs/loader.js:640:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/Users/username/WebstormProjects/my-api-monitor/release/mac/API monitor.app/Contents/Resources/app/api/build/index.js:19:16)
at Object.<anonymous> (/Users/username/WebstormProjects/my-api-monitor/release/mac/API monitor.app/Contents/Resources/app/api/build/index.js:208:3)
at Module._compile (internal/modules/cjs/loader.js:693:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:704:10)
at Module.load (internal/modules/cjs/loader.js:602:32)
Я думаю, проблема в том, что node_modules
моего API в /build
папке не упакован в приложении, и я не могу добиться этого обычным способом, задокументированным в electron-builder
readme.
Для получения более подробной информации, вот мое дерево файлов.
Кроме того, мой строитель электронов config.:
"asar": false,
"files": [
"main.js",
"api/**/*",
"resources/**/*"
],
"directories": {
"buildResources": "resources",
"output": "release"
}
Та же проблема с или без asar
, оставьте значение false, чтобы проверить, правильно ли включены папки и файлы.
Любая идея будет полезна.