用途:为 NestJS 项目建立环境变量校验与 ConfigModule 配置规范,优先级 P1(HIGH)。
主要能力与用法:使用 @nestjs/config 库,在 AppModule 中导入 ConfigModule.forRoot({ isGlobal: true }) 完成初始化。启动时必须校验环境变量,工具可选 joi 或自定义校验类;若缺少必需变量(如 DB_URL),应用须立即崩溃。示例中通过 validationSchema 传入 Joi.object,定义 NODE_ENV(valid 为 development、production,默认 development)、PORT(number,默认 3000)、DATABASE_URL(string,required)。
访问方式:注入 ConfigService 读取配置值;避免魔法字符串,使用类型安全的 getter 辅助函数或专用配置对象/接口。密钥方面,绝不提交 .env 文件,将 .env* 加入 .gitignore。
新增变量要求:必须同步更新 src/config/env.validation.ts(添加类属性及合适的 class-validator 装饰器)、.env.example(占位值)、.env.development / .env.test(实际开发值),并在 CI/CD 与基础设施中映射新变量(如 .github/workflows/*.yml、gitlab-ci.yml、Terraform 或 Azure Pipelines);多数云平台(Cloud Run、ECS、Kubernetes)需显式映射密钥/环境变量到容器运行时,否则生产部署会崩溃或静默失败。
反模式:不校验环境变量、提交密钥、新增变量却不更新 CI/CD。
限制:资料未提供具体版本要求、完整代码示例或更多平台细节。