Skip to content

env

环境变量工具,提供 .env 文件内容解析功能,支持键值对提取、引号去除和前缀过滤。

导入方式

typescript
// 子模块独立导入(推荐)
import { parseEnvContent } from '@meng-xi/vite-plugin/common/env'

// barrel 导入
import { parseEnvContent } from '@meng-xi/vite-plugin/common'

parseEnvContent

解析 .env 文件内容,提取键值对为对象。

typescript
function parseEnvContent(
  content: string,
  options?: { prefix?: string }
): Record<string, string>

参数

参数类型默认值说明
contentstring-.env 文件内容字符串
optionsobject-解析选项(可选)

options 选项

属性类型默认值说明
prefixstring-仅保留以该前缀开头的键(如 VITE_APP_

返回值

Record<string, string> - 键值对映射对象

解析规则

规则说明
空行自动跳过
注释行 #自动跳过(以 # 开头的行)
无等号行自动跳过(不含 = 的行)
键名处理= 左侧部分,去除首尾空白
值处理= 右侧部分,去除首尾空白
引号去除若值被单引号 '...' 或双引号 "..." 包裹,则去除首尾引号
前缀过滤若提供 prefix,则仅保留以该前缀开头的键

示例

typescript
const envContent = `
# Database config
DB_HOST=localhost
DB_PORT=5432

# App config
APP_NAME="My App"
APP_MODE='production'
SECRET_KEY=abc123def
`

// 解析全部变量
const env = parseEnvContent(envContent)
// {
//   DB_HOST: 'localhost',
//   DB_PORT: '5432',
//   APP_NAME: 'My App',
//   APP_MODE: 'production',
//   SECRET_KEY: 'abc123def'
// }

// 仅解析以 APP_ 开头的变量
const appEnv = parseEnvContent(envContent, { prefix: 'APP_' })
// {
//   APP_NAME: 'My App',
//   APP_MODE: 'production'
// }

// 仅解析以 VITE_ 开头的变量(常用于 Vite 项目)
const viteEnv = parseEnvContent(envContent, { prefix: 'VITE_' })
// {}

Released under the MIT License.