我想用分开的.每种模式(开发、生产等)的环境文件.在我的vue上工作时.在js项目中,我可以使用.env.development.env.production这样的文件为同一个env密钥获取不同的值.(例如:in.env.development:FOO=BAR和in.env.production:FOO=BAZ,在开发模式下process.env.FOO将是BAR,在生产模式下我将是BAZ).

我在一台Express服务器上工作,想使用这些相同的类型.存储端口、数据库uri、用户、pwd的环境文件...

我知道我可以编辑软件包中的脚本.像这样:

"scripts": {
    "start": "NODE_ENV=development PORT=80 node ./bin/www",
    "start-prod": "NODE_ENV=production PORT=81 node ./bin/www"
}

但当使用多个变量时,这会变得混乱.

我试过用dotenv,但似乎你只能用dotenv.环境文件.不环境.发展与创新.环境.生产

我可以使用dotenv软件包还是需要另一个?或者我可以不带任何包装就这么做吗?

推荐答案

你可以指定哪个.通过path option使用的env文件路径如下:

require('dotenv').config({ path: `.env.${process.env.NODE_ENV}` })

Node.js相关问答推荐

NPM:一般的npm二进制依赖可以静态构建吗?

已知NPM无法在node.js V12上运行的问题

后端如何保护数据不被用户提取其他用户的数据?

一个大型的单个 Redis 实例可以处理所有事情,还是多个 Redis 实例?

无法使用 Express 设置会话 cookie 的过期日期

几个 lambda 共有的函数

与诗乃一起嘲笑奈克斯

每秒从套接字传来的数据有哪些存储方式?

Axios 响应循环通过函数只返回第一个映射对象的结果

AJAX 和 Node JS:在我的服务器中接收空数据

GridFS 大文件下载使 Node.js 服务器崩溃. MongoServerError:排序超出了字节的内存限制

try 运行迁移时的 Typeorm:缺少必需的参数:dataSource

Cassandra node.js 驱动程序有替代品吗?

如何在 node.js 环境中从 WebAssembly (Rust) 调用异步 JavaScript 导入函数?

如何使用 superagent/supertest 链接 http 调用?

这到底是什么';拒绝未经授权';对我来说是什么意思?

如何以编程方式检测nodejs中的调试模式?

构建 vue cli 后如何运行生产站点

如何在离线时安装 npm 包?

在 Node.js 中获取终端的宽度