在开发前端应用时,我们通常需要配置一些敏感信息,比如数据库的连接信息、API 的密钥等等。我们不希望这些敏感信息直接写在代码里,防止被恶意利用。dotenv-configure 正是解决这个问题的 npm 包,它能让我们把这些配置信息存放在一个 .env 文件中,通过代码读取使用,使得我们的应用更加安全。
安装
我们可以通过 npm 安装 dotenv-configure:
npm install dotenv-configure
如何使用
使用 dotenv-configure 非常简单,只需在应用代码中调用 config
方法,并在参数中指定 .env
文件路径即可。例如,假设我们有一个 .env
文件存放着敏感信息:
DB_NAME=my_db DB_USER=my_user DB_PASSWORD=my_secret_password
我们可以通过以下代码读取这些信息:
-- -------------------- ---- ------- ----- - ------ - - ---------------------------- -------- ----- -------------------- --- --------------------------------- --------------------------------- -------------------------------------
上述代码会输出以下内容:
'my_db' 'my_user' 'my_secret_password'
到此,我们就成功读取了这些敏感信息并注入到了我们的应用中。
高级使用
dotenv-configure 还支持很多高级用法,比如可以使用默认路径,指定编码等等。下面我们来介绍一些高级用法。
1. 使用默认路径
dotenv-configure 支持使用默认路径 .env
,这样就无需显示指定 path
参数。这里我们需要将环境变量 NODE_ENV
的值设置为 development
:
NODE_ENV=development
将 .env
文件放到项目根目录下,然后通过以下代码读取配置:
const { config } = require('dotenv-configure'); config(); console.log(process.env.DB_NAME); console.log(process.env.DB_USER); console.log(process.env.DB_PASSWORD);
2. 指定编码
我们可以通过 encoding
参数来指定 .env
文件的编码格式。例如:
const { config } = require('dotenv-configure'); config({ path: 'path/to/your/.env', encoding: 'base64', });
这样 dotenv-configure 将以 base64
格式解析 .env
文件。
3. 覆盖已有的变量
dotenv-configure 支持在不同环境下使用不同的值,比如在 production 环境下使用一个不同的密钥。dotenv-configure 支持使用 .env.[ENVIRONMENT]
文件覆盖 .env
文件的变量。例如:
# .env.production DB_NAME=production_db DB_PASSWORD=production_secret_password
# .env DB_NAME=my_db DB_USER=my_user DB_PASSWORD=my_secret_password
然后通过以下代码读取配置:
const { config } = require('dotenv-configure'); config({ path: '.env' }); config({ path: `.env.${process.env.NODE_ENV}` }); console.log(process.env.DB_NAME); console.log(process.env.DB_USER); console.log(process.env.DB_PASSWORD);
如果 NODE_ENV
的值为 production
,那么上述代码输出的结果将是:
'production_db' 'my_user' 'production_secret_password'
4. 指定默认值
dotenv-configure 支持为变量指定默认值,如果 .env
文件中没有定义该变量值,则使用默认值。例如:
-- -------------------- ---- ------- ----- - ------ - - ---------------------------- -------- ----- -------------------- --------- - -------- ------------- -------- --------------- ------------ ------------------- -- --- --------------------------------- --------------------------------- -------------------------------------
如果 .env
文件没定义 DB_NAME
,那么输出的结果将是:
'default_db' 'my_user' 'my_secret_password'
总结
无论在开发还是部署时,dotenv-configure 都是保障你的敏感信息不泄露的利器。它既简单易用,又支持多种高级用法,是前端开发工具箱中不可或缺的一员。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600668e1d9381d61a354095f