当与电子封装器一起打包时,如何在Electron应用程序上设置NODE_ENV = production?

时间:2016-09-07 06:07:20

标签: environment-variables electron

NODE_ENV=production打包时,如何制作我的Electron应用程序集electron-packager的打包版本?

2 个答案:

答案 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