与NODE_ENV=production
打包时,如何制作我的Electron应用程序集electron-packager
的打包版本?
答案 0 :(得分:5)
据我所知,您无法在启动时将env vars传递给打包的电子应用程序(除非您希望用户始终从命令行启动它并自行传递)。您始终可以在应用程序中设置该env变量,如下所示:process.env.NODE_ENV = 'production'
。您可以通过在您的构建中设置一个env文件并将其与您的应用程序相关联来确定它所处的环境,从而将其与electronic-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-prebuilt
process.execPath
const isProd = process.execPath.search('electron-prebuilt') === -1;
答案 1 :(得分:0)
您可以通过两种方式进行设置。
使用--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