node.js 配置 npm - NODE_CONFIG_ENV

node.js config npm - NODE_CONFIG_ENV

我正在尝试使用配置包 (npm install config) 以便能够为不同的环境使用不同的配置。 我 运行 它在 windows 10.

我在 config 文件夹下有 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。 我做了一些测试:

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

似乎 NODE_CONFIG_ENV 是问题的根源,因为似乎 config 正在使用它来决定选择哪个文件。

我的问题是如何让 config 再次使用 NODE_ENV
或者,如果不可能,我该如何设置 NODE_CONFIG_ENV

这是部分解决方案,

"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 以防它 returns 重新使用它,但总的来说我仍然没有弄清楚是什么导致它使用 NODE_CONFIG_ENV 而不是 NODE_ENV

编辑:找到原因了!这是因为我之前使用了另一个名为 cross-env 的 npm 包。