我正在研究 ElectronJS 和 ExpressJS 项目,以构建在后台中运行 API 的应用程序>,并显示具有某些功能的系统托盘,这些功能可控制和监视该API。
"electron": "^4.0.4",
"electron-builder": "^20.38.5",
我使用electron-builder
生成 macOS和Windows的安装程序(带有.exe
和nsis
的Windows .dmg
软件包 / strong>包含我的 express API内置应用程序。
这意味着,我在电子的 main.js 中单独构建它并称其为入口点build/index.js
,尽管如此,在开发过程中,钩子和其他所有东西都很好环境。但是当我运行构建时,它向我显示了该错误:
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
自述文件中记录的方式。
有关更多详细信息,这是我的文件树。
此外,我的电子生成器配置。 :
"asar": false,
"files": [
"main.js",
"api/**/*",
"resources/**/*"
],
"directories": {
"buildResources": "resources",
"output": "release"
}
有或没有asar
的同一问题,我将其保留为false以检查文件夹和文件是否正确包含。</ p>
任何想法都会有所帮助。