关于 environment-validation
Environment Validation 是一套供开发者参考的配置校验模式,要求脚本或应用在执行业务逻辑前检查必需环境变量。它强调尽早失败、清晰报告缺失项,并展示了 CLI 环境管理器的用法。
主要功能
- 01在入口处检查必需环境变量
- 02一次列出所有缺失配置
- 03在业务逻辑开始前校验
- 04复杂项目可使用共享环境管理器
- 05适用于部署脚本、Lambda 和 CLI
适用场景
- 01避免部署脚本因缺少配置而中途失败
- 02让 Lambda 启动时尽早发现环境配置问题
- 03在 CLI 命令执行前校验配置
- 04集中管理多个入口共用的环境变量校验
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ loxosceles-dev/ dev-skills --skill environment-validation安装后在 Claude Code 中输入/environment-validation确认已加载。
详细介绍
环境验证模式
这是一个参考模式。 借鉴其方法,根据你的场景灵活调整,不要照搬。
问题:由于缺少环境变量,脚本执行到一半时失败,浪费时间,还会导致系统状态不一致。
解决方案:在任何操作开始前,于启动时验证所有必需的环境变量。
模式
尽早验证:在开始业务逻辑之前,检查所有必需的配置。
// ✅ Preferred: Validate at entry point
function validateEnvironment() {
const required = ['AWS_REGION', 'PROJECT_ID', 'ENVIRONMENT'];
const missing = required.filter(key => !process.env[key]);
if (missing.length > 0) {
throw new Error(`Missing required environment variables: ${missing.join(', ')}`);
}
}
// At script/app entry point
validateEnvironment();
// Now proceed with business logic
环境管理器模式(适用于复杂项目):
// shared/env-loader.ts
export function loadAndValidateEnv() {
const required = ['AWS_REGION', 'PROJECT_ID', 'ENVIRONMENT'];
const missing = required.filter(key => !process.env[key]);
if (missing.length > 0) {
throw new Error(`Missing: ${missing.join(', ')}`);
}
return {
awsRegion: process.env.AWS_REGION!,
projectId: process.env.PROJECT_ID!,
environment: process.env.ENVIRONMENT!
};
}
// Usage in scripts/handlers
const config = loadAndValidateEnv();
// All env vars validated, proceed with business logic
优点
- 快速失败:立即发现配置错误
- 错误清晰:准确了解缺少哪些内容
- 代码整洁:业务逻辑不会被验证代码干扰
- 保持一致:整个应用只有一个验证入口
适用场景
- 始终适用:部署脚本、Lambda 处理程序、命令行工具
- 入口点:在应用或脚本启动时验证
- 共享配置:复杂项目使用环境管理器
与 CLI 架构的集成
3 层 CLI 架构包含一个实现此模式的 EnvironmentManager:
// core/env-manager.ts
export class EnvironmentManager extends BaseManager {
loadEnv(stage: string): Record<string, string> {
this.log(`Loading environment for ${stage}`);
// Validate required variables
const required = ['AWS_REGION', 'PROJECT_ID'];
const missing = required.filter(key => !process.env[key]);
if (missing.length > 0) {
throw new Error(`Missing: ${missing.join(', ')}`);
}
return process.env;
}
}
这样可以确保所有 CLI 命令在执行业务逻辑前验证环境。
相关内容
渐进式改进
如果开发者纠正了本技能本应避免的行为,请建议对本技能进行具体修改,以防止今后再次出现同样的问题。
评论
支持 Markdown