当 NODE_ENV 设置为“test”时,Node-config 的 custom-environment-variables.json 似乎不会覆盖 default.json 中的值。这是一个非常简单的配置:
配置/default.json:
{
"jwtPrivateKey": "defaultkey"
}
配置/自定义环境变量.json:
{
"jwtPrivateKey": "JWTPRIVATEKEY"
}
配置/test.json:
{}
应用程序.js:
console.log('NODE_ENV': + process.env.NODE_ENV);
console.log('Env: ' + process.env.JWTPRIVATEKEY);
console.log("Config: " + config.get('jwtPrivateKey'));
这按预期工作:我得到 NODE_ENV=undefined (因此 node-config 将默认为“开发”),并且接下来的两行都打印了在环境变量中设置的正确值。但是,如果我尝试使用 Jest 运行一个简单的测试并打印相同的内容:
测试/some.test.js:
test('Some Test', () => {
console.log('NODE_ENV:' + process.env.NODE_ENV);
console.log('Env: ' + process.env.JWTPRIVATEKEY);
console.log("Config: " + config.get('jwtPrivateKey'));
});
我得到 NODE_ENV=test,Env=在环境变量中设置的正确值...但是 Config=defaultKey。
换句话说:虽然它显示环境变量设置为正确的值,但 node-config 似乎并没有通过 custom-environment-variables.json 将其拉入。
这是一个错误吗?我已经搜索了文档,但找不到导致这种差异的任何原因。