手动加载应用依赖
警告
重要提示:此方法仅能在开发环境中使用。因为在应用程序的发布版本中,app
目录应该自包含所有使用的文件。
如果在开发环境中,您的应用主进程(由 electron 执行)不在 /app
文件夹内运行。您可能需要手动加载 /app
依赖。因为应用依赖位于 /app/node_modules
,而您的主进程在不同的目录中运行,默认情况下无法访问该目录。
为了避免在开发环境的 package.json
中重复应用依赖,可以采用如下方法让 electron 主进程手动加载应用依赖
// given this file is: /src/browser/main.js
const path = require('path')
const devMode = (process.argv || []).indexOf('--dev') !== -1
// load the app dependencies in dev mode
if (devMode) {
const PATH_APP_NODE_MODULES = path.join(__dirname, '..', '..', 'app', 'node_modules')
const Module = require('module')
// for electron 16 or lower
Module.globalPaths.push(PATH_APP_NODE_MODULES)
// for electron 17 or higher
const nodeModulePaths = Module._nodeModulePaths
Module._nodeModulePaths = (from) =>
nodeModulePaths(from).concat([PATH_APP_NODE_MODULES])
}