前言
在前端开发过程中,经常会需要用到环境变量,比如不同环境下的数据库地址、API 地址等。为了方便管理这些环境变量,我们可以使用 npm 包 @ladjs/env。
什么是 @ladjs/env
@ladjs/env 是一个用于读取环境变量的 npm 包。它支持从环境变量、命令行参数、dotenv 配置、默认值等多个来源读取环境变量,并提供了针对不同环境的默认配置。
安装 @ladjs/env
使用 npm 安装 @ladjs/env:
npm install @ladjs/env --save
使用 @ladjs/env
基本使用
引入 @ladjs/env:
const env = require('@ladjs/env');
然后调用 env 函数读取环境变量:
const dbUrl = env('DB_URL');
在环境变量中设置 DB_URL 后,调用 env 返回 DB_URL 的值。
从不同来源读取环境变量
@ladjs/env 提供了多种读取环境变量的方式,优先级从高到低依次为:
- 命令行参数
- 环境变量
- dotenv 配置文件
- 默认值
即如果同时提供了命令行参数和环境变量,@ladjs/env 会优先从命令行参数读取。
命令行参数的格式如下:
node app.js --env=production
实际应用中,我们可以使用 yargs 等库来处理命令行参数,示例如下:
-- -------------------- ---- ------- ----- --- - ---------------------- ----- ----- - ----------------- ----- ---- - --------------- ---- - ----- --------- -------- ------------- -- -------- ----- ----- - ------------- - ------------ -------------------------------- ----------- --------------------------------- -- ------
以上示例中,env 函数接受三个参数:要读取的环境变量名、针对不同环境的默认配置、命令行参数对象。通过这种方式,可以方便地在不同环境下使用不同的配置。
高级使用
@ladjs/env 支持更多高级特性,包括:
1. 自定义默认值
可以给 env 函数传入第二个参数,用于设置默认值,示例如下:
const dbUrl = env('DB_URL', 'mongodb://localhost:27017/dev');
2. 自定义 dotenv 配置文件
默认情况下,@ladjs/env 会读取项目根目录下的 .env 文件来加载 dotenv 配置。可以使用配置文件指定其他文件名,示例如下:
const env = require('@ladjs/env'); env.config({ path: '/custom/path/to/.env' }); const dbUrl = env('DB_URL');
3. 限制环境变量取值范围
可以使用 allowlist 或 denylist 限制环境变量的取值范围,示例如下:
const env = require('@ladjs/env'); env.config({ allowlist: ['DB_URL', /^API_/], denylist: ['NODE_ENV', /^DB_/], }); const dbUrl = env('DB_URL');
以上示例设置了 allowlist 和 denylist,分别表示只允许以 DB_ 开头的环境变量或者以 API_ 开头的环境变量,不允许 NODE_ENV 和以 DB_ 开头的环境变量。
总结
@ladjs/env 是一个非常实用的 npm 包,可以帮助我们更方便地读取环境变量,并提供了多种高级特性,可以满足各种不同的需求。希望本文对大家了解和使用 @ladjs/env 有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedae80b5cbfe1ea0610e55