使用 electron-packager 打包时,如何在 Electron 应用程序上设置 NODE_ENV=production?
How do I set NODE_ENV=production on Electron app when packaged with electron-packager?
当使用 electron-packager
打包时,我如何制作我的 Electron 应用程序集 NODE_ENV=production
的打包版本?
您可以通过两种方式进行设置。
通过命令行 --no-prune
参见这里的用法 guide
或以编程方式使用此 API
var packager = require('electron-packager');
var options = {
'arch': 'ia32',
'platform': 'win32',
'dir': './'
'prune': true //this set the enviroment on production and ignore dev modules
};
packager(options, function done_callback (err, appPaths) { /* … */ })
有关更多选项,请参阅此 guide
2019/12 更新
使用app.isPackaged
:https://electronjs.org/docs/api/app#appispackaged-readonly
如果应用已打包,则 returns 为真,否则为假。假设您只需要检查它是否在生产中,就应该这样做。如果您有不同的 environments/builds 和不同的行为,下面详述的 env 文件解决方案会更合适。
据我所知,您不能在启动时将环境变量传递给打包的电子应用程序(除非您希望您的用户始终从命令行启动它并自己传递)。您始终可以像这样在您的应用程序中设置该环境变量:process.env.NODE_ENV = 'production'
。您可以通过在您的构建中设置一个 env 文件来将它与 electron-packager 集成,并且您的应用程序需要它来确定它所处的环境。
例如,有一个如下所示的打包脚本:
"package": "cp env-prod.json src/env.json && npm run build"
并在您的 src/main.js
文件中:
const appEnv = require('./env.json');
console.log(appEnv) //=> { env: "prod", stuff: "hey" }
//you don't really need this, but just in case you're really tied to that NODE_ENV var
if(appEnv.env === 'prod') {
process.env.NODE_ENV = 'production';
}
当使用 electron-packager
打包时,我如何制作我的 Electron 应用程序集 NODE_ENV=production
的打包版本?
您可以通过两种方式进行设置。
通过命令行 --no-prune
参见这里的用法 guide
或以编程方式使用此 API
var packager = require('electron-packager');
var options = {
'arch': 'ia32',
'platform': 'win32',
'dir': './'
'prune': true //this set the enviroment on production and ignore dev modules
};
packager(options, function done_callback (err, appPaths) { /* … */ })
有关更多选项,请参阅此 guide
2019/12 更新
使用app.isPackaged
:https://electronjs.org/docs/api/app#appispackaged-readonly
如果应用已打包,则 returns 为真,否则为假。假设您只需要检查它是否在生产中,就应该这样做。如果您有不同的 environments/builds 和不同的行为,下面详述的 env 文件解决方案会更合适。
据我所知,您不能在启动时将环境变量传递给打包的电子应用程序(除非您希望您的用户始终从命令行启动它并自己传递)。您始终可以像这样在您的应用程序中设置该环境变量:process.env.NODE_ENV = 'production'
。您可以通过在您的构建中设置一个 env 文件来将它与 electron-packager 集成,并且您的应用程序需要它来确定它所处的环境。
例如,有一个如下所示的打包脚本:
"package": "cp env-prod.json src/env.json && npm run build"
并在您的 src/main.js
文件中:
const appEnv = require('./env.json');
console.log(appEnv) //=> { env: "prod", stuff: "hey" }
//you don't really need this, but just in case you're really tied to that NODE_ENV var
if(appEnv.env === 'prod') {
process.env.NODE_ENV = 'production';
}