node.js配置npm - NODE_CONFIG_ENV

kninwzqo  于 2023-10-17  发布在  Node.js
关注(0)|答案(1)|浏览(207)

我尝试使用配置包(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呢?

5hcedyr0

5hcedyr01#

这里有一个部分解决方案,

"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
编辑:我找到原因了!这是因为我之前使用的另一个名为cross-env的npm包。

相关问题