问题
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