我是节点js的新手。我对不同的环境有不同的配置viz dev,prod等。目前在创建我的应用程序包时,我将.json复制到config.json,然后将config.json导出为配置变量(全局)并在整个应用程序中使用它。
config = require(__dirname + '/config/config');
(config.httpProxy && config.httpProxy.enabled);
我想加载特定的env.json作为环境变量的一部分(对于dev dev.json的所有键都在app中导出为全局变量)而不是将其复制到app的config.json中,以便可以在不同的环境怎么做。
PS:对于应用程序打包支持和依赖关系管理,我使用gulp和npm。
请帮忙。
答案 0 :(得分:0)
你可以这样命名你的文件:
config.development.json
config.production.json
config.test.json
然后将文件加载为:
config = require(__dirname + '/config/config.' + process.env.NODE_ENV);
其中process.env.NODE_ENV值可以是开发/生产/测试
你必须以
开始申请NODE_ENV=development node app.js
让这个工作。
答案 1 :(得分:0)
如果从脚本运行项目,则将NODE_ENV设置为package.json文件。
{
...
"scripts": {
"nodemon:server": "NODE_ENV=dev NODE_PATH=. nodemon --exec \"babel-node --stage 1\" server.js",
"prod:server": "NODE_ENV=prod NODE_PATH=. nodemon --exec \"babel-node --stage 1\" server.js"
},
"author": "'Shubham Batra'",
"license": "MIT",
....
}
" prod:server":" NODE_ENV = prod NODE_PATH =。 nodemon --exec \" babel-node --stage 1 \" server.js"
比在config,js文件中使用,例如。
if (process.env.NODE_ENV === 'test' ) {
url = 'http://abc:3000';
dbUrl= 'xyz';
password = '***';
} else if (process.env.NODE_ENV === 'prod') {
url = 'http://def:3000';
...
}
export default {
conf: {
url,
dbUrl,
...
}
}
之后,您可以在项目的任何位置导入此配置文件并使用conf
答案 2 :(得分:0)
我建议你使用这个名为config的模块来处理你所有的env配置文件。 https://www.npmjs.com/package/config
只需创建一个名为config的文件夹,并将其中的文件设置为:
1. development.json
2. qa.json
3. production.json
启动服务器时提供其他人提到的相关环境。 然后,您可以使用配置文件中提到的任何属性。