env-guard — 开发环境守卫
你是什么
env-guard 是一个 PowerShell 7+ CLI 工具(env-guard.ps1),用于探测开发环境状态、对比快照变化、诊断报错是环境问题还是代码问题。
脚本位置(二选一):
- •项目根目录:
./env-guard.ps1 - •全局安装:
env-guard(已加入 PATH)
命令参考
powershell
# 显示当前环境 env-guard # 保存 baseline 快照 env-guard -Save # 对比当前环境和 baseline env-guard -Diff # 智能入口(无 baseline → Save,过期 → Diff,未过期 → 跳过) env-guard -Auto # 诊断报错归属 env-guard -Diagnose -ErrorMessage "完整的报错信息" # 检查项目环境要求 env-guard -Check env-guard -Check -Mode enforce env-guard -Check -Mode adapt # 端口健康检查 env-guard -ProcessCheck -Port 3000
流程一:开工
执行 env-guard -Auto 作为第一步操作。
- •没有 baseline → 自动拍快照保存
- •baseline 过期 → 自动对比并报告变化
- •baseline 有效 → 跳过,零开销
如果报告了变化,先理解变化内容再开始任务。
流程二:命令失败时(核心流程)
严格按顺序执行:
第 1 步:诊断归属
powershell
env-guard -Diagnose -ErrorMessage "粘贴完整报错信息"
第 2 步:根据诊断结果分支
env 得分 > code 得分 → 环境问题:
powershell
env-guard -Diff
根据 Diff 结果修复环境(切版本、释放端口、设代理等),不改代码。
code 得分 > env 得分 → 代码问题: 正常 debug,修代码。
得分持平 → 不确定:
先跑 env-guard -Diff 排除环境因素,再决定。
第 3 步:绝不跳过诊断直接改代码
流程三:环境检查
确认环境是否满足项目要求:
- •
env-guard -Check— 按配置的默认模式检查 - •
env-guard -Check -Mode enforce— 不满足则阻止 - •
env-guard -Check -Mode adapt— 不满足则输出当前终端的兼容命令
流程四:端口/进程检查
确认服务是否存活:
powershell
env-guard -ProcessCheck -Port 3000
返回 JSON 格式的端口状态、占用进程、PID、健康状态。
命令映射
当终端类型变化时,使用 .env-guard.json 中 commands 字段的映射表。
在生成终端命令前,先确认当前终端类型。 示例映射:
| 操作 | pwsh | cmd | bash |
|---|---|---|---|
| HTTP GET | Invoke-RestMethod -Uri $URL | curl -s $URL | curl -s $URL |
| 删除文件夹 | Remove-Item -Recurse -Force $PATH | rmdir /s /q $PATH | rm -rf $PATH |
| 杀端口 | Get-Process ... | Stop-Process | netstat + taskkill | kill -9 $(lsof -t -i:$PORT) |
诊断速查
| 报错关键词 | 归属 | 典型动作 |
|---|---|---|
is not recognized as | 环境 | 检查 PATH、工具安装 |
command not found | 环境 | 检查 PATH、工具安装 |
EADDRINUSE | 环境 | 释放端口 |
EACCES / permission denied | 环境 | 检查权限 |
scripts is disabled | 环境 | 设置执行策略 |
ETIMEDOUT / ECONNREFUSED | 环境 | 检查代理、网络 |
SyntaxError | 代码 | 修代码 |
TypeError | 代码 | 修代码 |
is not a function | 代码 | 修代码 |
ReferenceError | 代码 | 修代码 |
Cannot find module | 两栖 | 先检查 node_modules 是否存在 |
相关文件
| 文件 | 用途 |
|---|---|
.env-guard.json | 项目环境要求、命令映射、错误模式配置 |
.env-baseline.json | 环境快照(自动生成,已加入 .gitignore) |
env-guard.ps1 | CLI 工具本体 |