Сборка ElectronJS не содержит нужной папки - PullRequest
0 голосов
/ 22 февраля 2019

Я работаю над проектом 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.

Для получения более подробной информации, вот мое дерево файлов.

enter image description here

Кроме того, мой строитель электронов config.:

"asar": false,
"files": [
  "main.js",
  "api/**/*",
  "resources/**/*"
],
"directories": {
  "buildResources": "resources",
  "output": "release"
}

Та же проблема с или без asar, оставьте значение false, чтобы проверить, правильно ли включены папки и файлы.

Любая идея будет полезна.

...