Skip to content
Back to skills

Env Manager

ASecurity

环境变量管理器:扫描、校验、同步 .env 文件,生成安全配置模板

  • 876 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 26, 2026
securitybashreactvuenextjsdockerawsgitapici/cd

Works with

  • cli
  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add laolaoshiren/claude-code-skills-zh --skill env-manager --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Env Manager?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Env Manager
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/laolaoshiren-env-manager/badge)](https://www.skillsdirectory.com/skills/laolaoshiren-env-manager)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: env-manager
description: 环境变量管理器:扫描、校验、同步 .env 文件,生成安全配置模板
---

# 环境变量管理器

## 触发条件
当用户要求管理环境变量、.env 文件、配置同步、Secrets 检查时激活。

## 工作流程

### 1. 扫描项目
- 检测所有 `.env*` 文件(.env / .env.local / .env.development / .env.production)
- 扫描代码中引用的环境变量(`process.env.XXX` / `os.environ['XXX']` / `os.getenv('XXX')`)
- 识别已定义但未使用的变量(死配置)
- 识别已使用但未定义的变量(缺失配置)

### 2. 校验分析
- 检查必填变量是否有默认值
- 验证 URL 格式、端口号范围、布尔值格式
- 检测硬编码的敏感信息(API Key / Token / Password)
- 对比 .env.example 与实际 .env 文件的差异

### 3. 生成/修复
- 生成 `.env.example` 模板(仅包含变量名和说明,不含真实值)
- 生成 `.env.schema.json`(结构化校验规则)
- 检测到硬编码密钥时,建议迁移到环境变量
- 生成 `dotenv` 加载配置(针对不同框架)

### 4. 同步
- 在 monorepo 中同步共享环境变量
- 生成 Docker Compose 的 env_file 配置
- 生成 CI/CD 的 Secrets 配置清单

## 输出格式

### .env.example 示例
```bash
# 应用配置
APP_NAME=my-app
APP_ENV=development          # development | staging | production
APP_PORT=3000                # 服务端口 (1-65535)
APP_DEBUG=true               # 调试模式

# 数据库
DB_HOST=localhost
DB_PORT=5432
DB_NAME=mydb
DB_USER=                     # 必填
DB_PASSWORD=                 # 必填,生产环境请使用 Secrets

# 第三方服务
REDIS_URL=                   # 必填,格式:redis://host:port
JWT_SECRET=                  # 必填,至少 32 位随机字符串
```

### 校验报告示例
```
📋 环境变量分析报告
==================
✅ 定义且使用: 12 个
⚠️  定义未使用: 2 个(S3_BUCKET, OLD_API_KEY)
❌ 使用未定义: 1 个(SENDGRID_API_KEY)
🔒 硬编码敏感信息: 1 处(src/auth.js:23)

建议:
1. 删除 .env 中的 S3_BUCKET 和 OLD_API_KEY
2. 在 .env 中添加 SENDGRID_API_KEY
3. 将 src/auth.js:23 的硬编码 token 迁移到环境变量
```

## 安全检查清单
- [ ] `.env` 已添加到 `.gitignore`
- [ ] `.env.example` 存在且与代码同步
- [ ] 无硬编码的 API Key / Token / Password
- [ ] 生产环境使用 Secrets 管理(GitHub Secrets / AWS SSM / Vault)
- [ ] JWT_SECRET / ENCRYPTION_KEY 足够随机(32+ 字符)
- [ ] 数据库密码不在日志中输出

## 常见陷阱
- **Next.js**:只有 `NEXT_PUBLIC_` 前缀的变量会暴露给客户端,后端专用变量不要加此前缀
- **Docker**:构建时的 ARG 和运行时的 ENV 是不同的,不要混淆
- **Create React App**:`.env` 中的变量必须以 `REACT_APP_` 开头才会被注入
- **Vite**:使用 `VITE_` 前缀暴露变量给客户端
- **monorepo**:根目录的 `.env` 不会自动被子包读取,需要显式配置

## 框架适配

| 框架 | 客户端前缀 | 配置文件 | 加载方式 |
|------|-----------|---------|---------|
| Next.js | NEXT_PUBLIC_ | .env.local | 自动 |
| Vite | VITE_ | .env | 自动 |
| CRA | REACT_APP_ | .env | 自动 |
| Nuxt | NUXT_PUBLIC_ | .env | 自动 |
| Vue CLI | VUE_APP_ | .env | 自动 |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.