我想为每种模式(开发,生产等)使用单独的.env文件。在处理vue.js项目时,我可以使用.env.development或.env.production之类的文件来获取同一env密钥的不同值。 (例如:在开发环境中,在.env.development中:FOO = BAR,在.env.production中:FOO =BAZ。env.FOO为BAR,在生产中为BAZ)。
我正在使用Express服务器,并希望使用这些相同类型的.env文件来存储端口,db uri,用户,pwd ...
我知道我可以像
一样编辑package.json中的脚本"scripts": {
"start": "NODE_ENV=development PORT=80 node ./bin/www",
"start-prod": "NODE_ENV=production PORT=81 node ./bin/www"
}
但是使用多个变量时会变得混乱。
我尝试使用dotenv,但似乎只能使用.env文件。不是.env.development和.env.production。
我可以使用dotenv软件包还是需要另一个软件包?还是我根本不用任何包装就能做到这一点?
答案 0 :(得分:0)
我尝试使用dotenv,但似乎只能使用.env文件。不是.env.development和.env.production。
不正确-请参见path
option。
例如,require('dotenv').config({ path: `/path/to/.env.${process.env.NODE_ENV}` })
答案 1 :(得分:0)
我只是想为遇到问题的其他人添加此内容。以上两个答案都略有偏离。让我解释。上面的家伙必须使用路径,如
//this says hey computer look in my current directory for this file.
require('dotenv').config({ path: `./.env.${process.env.NODE_ENV}` })
//I reccomend doing a console.log as well to make sure the names match*
console.log(`./.env.${process.env.NODE_ENV}`)
答案 2 :(得分:0)
我正在使用custom-env npm package处理多个.env文件。只需将其放在代码的顶部即可:
require('custom-env').env();
,它将从文件.env.X
中加载环境变量,其中X是您NODE_ENV
环境变量的值。例如:.env.test
或.env.production
。
Here是有关如何使用该软件包的不错的教程。
答案 3 :(得分:0)
dotenv 的官方文档不建议有多个 .env 文件。
"Should I have multiple .env files? 不。我们强烈建议不要使用“主” .env 文件和 “环境” .env 文件,如 .env.test。您的配置应该有所不同 在部署之间,您不应该在之间共享值 环境。”