我正在通过Atom开发一个带有Electron的Node.js应用程序。
我想有条件地(或自动地)设置一些属性,例如,url
在生产级别上应该是http://some.url
。
目前,我这样使用。
// win.loadURL('http://app.url/webchat'); //uncomment when production
win.loadURL('http://test.app.url/webchat'); // uncomment when development
这让我非常讨厌,当我错过更改评论时,这可能是一个问题。
如何在生产/开发级别有条件地更改我的属性?
答案 0 :(得分:1)
if (process.env.DEV === "PROD") {
win.loadURL('http://app.url/webchat');
} else {
win.loadURL('http://test.app.url/webchat');
}
然后在启动您的应用时,只需执行
DEV="PROD" node app.js
或其他
答案 1 :(得分:1)
我有一个配置目录,其中包含不同环境的不同配置文件:dev,test,prod。然后在我的package.json中添加了特定于环境的构建命令。例如对于刺激:
"build-prod-config": "config/buildProdConfig.sh",
"build-renderer-prod": "webpack --config=webpack.config.renderer.prod.js",
"build-main-prod": "webpack --config=webpack.config.main.prod.js",
"build-prod": "npm run build-prod-config && npm run build-main-prod & npm run build-renderer-prod",
buildProdConfig.sh
#!/usr/bin/env bash
cp config/app.config.prod.js config/app.config.js
echo "Copied ProdConfig to Config"
//This is what a config file looks like
const Config = {
suppDataDirectoryPath: '/suppData/',
builtFor: 'prod',
}
module.exports = Config;
然后,我需要在我的应用程序中使用Config并使用这些值。这是一件简单的事情,但它确实有效。