SuperAPI AI 工具集

better-env

部署与运维

查看项目

更新于 10-15 16:49

技能介绍

better-env 用于在 TypeScript 项目中管理环境变量,强调类型安全与清晰的服务器/公开边界。

主要能力:

  1. 类型化配置模块:导出 configSchema 定义环境变量模块,推荐放在功能级 config.ts 中(如 src/lib/auth/config.ts、src/lib/database/config.ts)。
  2. 环境校验:运行 better-env validate --environment <name>,按 Next.js 语义加载 .env* 文件,发现 src/lib/*/config.ts 模块并检查每个声明变量。建议在 dev、build 或 deploy 前尽早运行,快速失败。
  3. 运行时同步:通过 better-env.ts 中的 defineBetterEnv(...) 与适配器(vercelAdapter、netlifyAdapter、railwayAdapter、cloudflareAdapter)定义环境映射、env 文件目标与 gitignore 行为,使本地 dotenv 与托管平台环境保持一致。

使用方式:CLI 覆盖初始化、同步、校验与远程变量管理。npm/pnpm 仓库用 npx,Bun 仓库用 bunx,保持与项目既有包管理器一致。推荐流程:better-env init 验证适配器前置条件;better-env pull --environment <name> 同步本地 env 文件;better-env validate --environment <name> 在启动/构建前校验;用 add、upsert、update、delete、load 管理远程变量。upsert 适合幂等自动化,add 在重复键时失败,update 在缺失键时失败,delete 删除远程键,load 从 dotenv 文件批量更新。

限制与细节:若 dotenv 文件含未被 config 模块引用的键,可在 better-env.ts 中通过 environments.<env>.ignoreUnused: string[] 按环境抑制,仅影响所选本地环境的 validate。适配器默认值会自动合并;Vercel 下 VERCEL_OIDC_TOKEN 在 development、preview、production 中默认忽略。更多内容见 references 下的 config-schema.md、env-validation.md、config.md、runtime.md、cli.md、vercel-adapter.md。资料未提供收费、价格与具体平台支持范围等信息。