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

Kyl*_*ley 6 environment-variables electron

如何让我的电子应用程序集的打包发行NODE_ENV=production时与包装electron-packager

ccn*_*kes 6

据我所知,您不能在启动时将env vars传递给打包的电子应用程序(除非您希望用户始终从命令行启动它并自己传递它)。您始终可以像这样在应用程序中设置env变量:process.env.NODE_ENV = 'production'。您可以通过在构建中设置一个env文件来将其与electronic-packager集成,应用程序将需要它来确定它所处的环境。

例如,有一个打包脚本,如下所示:

"package": "cp env-prod.json src/env.json && npm run build"
Run Code Online (Sandbox Code Playgroud)

并在您的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';
}
Run Code Online (Sandbox Code Playgroud)

不过,我认为最容易做的事情是检查electron-prebuiltprocess.execPath

const isProd = process.execPath.search('electron-prebuilt') === -1;
Run Code Online (Sandbox Code Playgroud)