mcpField
E
environment-validation

environment-validation

github.com/loxosceles-dev开发135 次安装
代码仓库

关于 environment-validation

Environment Validation 是一套供开发者参考的配置校验模式,要求脚本或应用在执行业务逻辑前检查必需环境变量。它强调尽早失败、清晰报告缺失项,并展示了 CLI 环境管理器的用法。

主要功能

  1. 01在入口处检查必需环境变量
  2. 02一次列出所有缺失配置
  3. 03在业务逻辑开始前校验
  4. 04复杂项目可使用共享环境管理器
  5. 05适用于部署脚本、Lambda 和 CLI

适用场景

  1. 01避免部署脚本因缺少配置而中途失败
  2. 02让 Lambda 启动时尽早发现环境配置问题
  3. 03在 CLI 命令执行前校验配置
  4. 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