如何在 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}` })
我目前正在用 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}` })