node.js config npm – NODE_CONFIG_ENV
我正在尝试使用configuration软件包(npm install config)来为不同的环境使用不同的configuration。 我在Windows 10上运行它。
我在configuration文件夹下有4个文件:default.json,development.json,production.json和qa.json。
当我运行SET NODE_ENV=production
例如适用于它,但config
仍然不从正确的文件的信息。
var config = require('config'); var port = config.get('appPort');
我做了一些阅读,我发现了另一个值 – NODE_CONFIG_ENV
。 我做了一些testing:
console.log('NODE_CONFIG_ENV: ' + config.util.getEnv('NODE_CONFIG_ENV')); console.log('NODE_ENV: ' + config.util.getEnv('NODE_ENV'));
看来, NODE_CONFIG_ENV
是负责的问题,因为它似乎config
使用它,而不是决定select哪个文件。
我的问题是我怎样才能使config
再次使用NODE_ENV
?
或者,如果不可能,我该如何设置NODE_CONFIG_ENV
呢?
这是一个部分的解决scheme,
"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", }
我添加了NODE_ENV
,以防它返回使用它,但总体上我还没有弄清楚是什么导致它使用NODE_CONFIG_ENV
而不是NODE_ENV
。
编辑:我find了原因! 这是因为我之前使用的另一个叫做cross-env
npm包。