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

zhte4eai  于 2023-01-12  发布在  Node.js
关注(0)|答案(3)|浏览(219)

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

文件结构:

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

脚本:

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

hzbexzde1#

您可以使用dotenv包访问您的.env.*文件。
通过使用package.json中的不同started命令更改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}` })
vwkv1x7d

vwkv1x7d2#

您可以在package.json的scripts部分中创建类似的内容

"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:devDEV模式启动服务器
通过运行npm run start:prodPROD模式启动服务器

dm7nw8vv

dm7nw8vv3#

您可以在package.json的scripts部分中创建如下内容:

"dev": "nodemon -r dotenv/config index.js"

相关问题