乐闻世界logo
搜索文章和话题

How do you load environment variables from .env and .env.local with dotenv?

4 个月前提问
4 个月前修改
浏览次数34

1个答案

1

在现代的应用开发中,使用环境变量来存储敏感信息和应用配置是一种非常普遍的做法。dotenv 是一个非常流行的库,它能帮助开发者在 Node.js 项目中从 .env 文件加载环境变量。当涉及到从 .env.env.local 文件加载环境变量时,这个库同样表现出色。以下是详细的步骤和示例:

安装 dotenv

首先,您需要将 dotenv 库添加到您的项目中。这可以通过运行以下命令来完成:

bash
npm install dotenv

创建 .env 和 .env.local 文件

在项目的根目录下,创建两个文件:.env.env.local。通常,.env 文件用于存储所有环境的公共配置,而 .env.local 通常用于存储特定于本地开发环境的配置。例如:

.env 文件内容:

shell
DB_HOST=localhost DB_USER=root DB_PASS=s1mpl3

.env.local 文件内容:

shell
DB_PASS=localpassword API_KEY=abcdef12345

配置 dotenv

要从这两个文件加载环境变量,您需要在应用程序的入口点(如 index.jsapp.js)配置 dotenvdotenvconfig 方法可以帮助您完成这一任务。您可以通过传递一个配置对象来指定多个路径,如下所示:

javascript
require('dotenv').config({ path: '.env.local' }); require('dotenv').config({ path: '.env' });

这里注意路径的顺序很重要。因为 dotenv 会将后加载的环境变量添加到 process.env 中,后加载的相同变量会覆盖前面加载的。所以,如果您希望 .env.local 中的变量能够覆盖 .env 中的相应变量,应当先加载 .env,再加载 .env.local

使用环境变量

配置完毕后,您可以在应用程序中通过 process.env 访问这些变量。例如,您可以这样访问数据库密码和 API 密钥:

javascript
const dbPassword = process.env.DB_PASS; const apiKey = process.env.API_KEY; console.log(`Database password is: ${dbPassword}`); console.log(`API Key is: ${apiKey}`);

结论

通过这种方式,您可以灵活地从不同的 .env 文件中加载环境变量,确保在不同的开发环境中应用程序的配置是适当的,同时保护敏感信息不被硬编码在代码中。这种方法也非常适合处理不同开发环境之间的配置差异。

2024年7月22日 14:20 回复

你的答案