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 包。
我正在尝试使用配置包 (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 包。