繁体   English   中英

节点dotenv文件未加载测试环境

[英]node dotenv files not loading for test env

我有两个dotenv文件,一个用于开发,另一个用于测试。

const dotenv = require('dotenv');

if (process.env && process.env.NODE_ENV) {
  dotenv.config({path: '.env.' + process.env.NODE_ENV});
} else {
  dotenv.config({path: '.env.development'});
}

const http = require('http');
const app = require('../src/app');

const port = parseInt(process.env.PORT, 10) || 8000;
app.set('port', port);

const server = http.createServer(app);
server.listen(port);

这是我的问题:

什么时候服务器在我的情况下加载dotenv文件? 如果我在test运行,为什么我没有为那些process.env变量定义? 在我看来,这个文件只运行一次,当我更改NODE_ENV时,它不会更改要加载的文件。

简而言之:

我的开发dotenv正在工作,但在更改它以test dotenv时遇到麻烦

请查看dotenv-flow软件包。

此模块扩展了dotenv,增加了多个.env*文件的功能,如.env.development.env.test.env.production等,还允许在相应的.env*.local文件中单独覆盖定义的变量这是VCS未跟踪的。

关于针对多个env文件的建议, dotenv-flow在版本控制下管理.env*文件的方法略有不同。 请参阅版本控制部分文件以了解此方法的动机。

我应该有多个.env文件吗?

不。我们强烈建议不要使用“主”.env文件和.env.test等“环境”.env文件。 您的配置应该在部署之间有所不同,并且您不应该在环境之间共享值。

来自dotenv文档

custom-env也解决了这个问题,它允许不同环境的多个配置文件。 npm install custom-env 您还可以指定要在移动中使用的.env文件。 require('custom-env').env('test');

完整文档: https//www.npmjs.com/package/custom-env

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM