leo*_*ger 3 environment-variables node.js express
我有两个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);
Run Code Online (Sandbox Code Playgroud)
这是我的问题:
我的服务器何时加载dotenv文件?如果我在testenv中运行,为什么我对那些process.env变量未定义?在我看来,此文件仅运行一次,当我更改NODE_ENV时,它不会更改要加载的文件。
简而言之:
我的开发dotenv正在工作,但是将其更改为testdotenv 时遇到了麻烦
请看一下dotenv-flow软件包。
该模块延伸dotenv添加有多个的能力.env*的文件等.env.development,.env.test,.env.production等,也允许定义的变量被覆盖单独在适当的.env*.local文件,它是由VCS未跟踪。
关于不建议使用多个环境文件的建议,dotenv-flow.env*在版本控制下管理文件的方法略有不同。请参阅“ 版本控制下的文件”部分以了解此方法的动机。
| 归档时间: |
|
| 查看次数: |
6483 次 |
| 最近记录: |