如何在 NodeJs 中使用带有 .env 文件的不同环境

How to use different environments with `.env` files in NodeJs

我目前正在用 nodejs 构建后端。我正在考虑如何给项目添加环境配置。我的想法是我有一个 /config 文件夹,其中有我的 envparser.ts(必须为此考虑一个更好的名称 ^^),它解释我的 .env 文件以将它们用作常规文件javascript 常量。通过在我的 package.json 中使用脚本,我希望能够切换环境。但我不知道如何使用 dotenv 在多个 .env 文件之间切换。

文件结构:

config/
   .env.development
   .env.production
   envparser.ts

脚本:

yarn start
yarn start -p/-production //Or a different Syntax to change envs

您可以在 package.json

的脚本部分添加类似内容
"start:dev": "node -r dotenv/config your_script.js dotenv_config_path=/custom/path/to/.env.development", 
"start:prod": "node -r dotenv/config your_script.js dotenv_config_path=/custom/path/to/.env.production"

通过npm run start:dev

DEV模式启动服务器

通过nom run start:prod

PROD模式启动服务器

您可以使用 dotenv 程序包来访问您的 .env.* 文件。


您可以通过使用 package.json

中不同的启动命令更改 NODE_ENV 变量来在不同的环境之间切换

例如:

"scripts": {
    "start": "NODE_ENV=development nodemon index.js",
    "deploy": "NODE_ENV=production node index.js"
}

然后,您可以在 index.js 文件中访问它们:

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