node.js config npm - NODE_CONFIG_ENV

删除回忆录丶 提交于 2020-01-04 01:36:51

问题


I am trying to use the config package (npm install config) to be able to use different configurations for different enviromenets. I am running it on windows 10.

I got 4 files under the config folder : default.json, development.json, production.json and qa.json.

when i am running SET NODE_ENV=production for example it applys to it but config still aint taking the info from the right file.

var config = require('config');
var port = config.get('appPort');

I done some reading and i found out about another value - NODE_CONFIG_ENV. I done some testing with :

console.log('NODE_CONFIG_ENV: ' + config.util.getEnv('NODE_CONFIG_ENV'));
console.log('NODE_ENV: ' + config.util.getEnv('NODE_ENV'));

And it seems that NODE_CONFIG_ENV is responsible for the problem because it seems that config is using it instead to decide which file to choose.

My question is how can i make config use NODE_ENV again?
Or if it is not possible how can i set NODE_CONFIG_ENV instead?


回答1:


Here is a partial solution,

"scripts": {
    "dev": "SET NODE_CONFIG_ENV=development&&SET NODE_ENV=development&& nodemon server.js",
    "qa": "SET NODE__CONFIG_ENV=qa&&SET NODE_ENV=qa&& node server.js",
    "prod": "SET NODE_CONFIG_ENV=production&&SET NODE_ENV=production&& node server.js",
}

I added NODE_ENV in case it returns back to using it but overall I still didnt figure out what caused it to use NODE_CONFIG_ENV instead of NODE_ENV.

Edit: I found the reason! It was because of another npm package called cross-env which i used earlier.



来源:https://stackoverflow.com/questions/47228777/node-js-config-npm-node-config-env

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!