📦 Vitest Config Validator - Vitest配置验证
v1.0.0Config Validator 验证 vitest.config.ts/js 及 vitest workspace 配置的语法、废弃选项、插件冲突与最佳实践。用于验证 Vi...
详细分析 ▾
运行时依赖
版本
首次发布:20+ 条 vitest.config 验证规则
安装命令
点击复制技能文档
校验 vitest.config.ts 与 vitest.config.js 的语法错误、废弃选项、插件冲突与最佳实践。无需执行 JS,仅用正则解析文本。
命令
``bash
# 全量校验(所有规则)
python3 scripts/vitest_config_validator.py validate vitest.config.ts # 快速语法检查(仅结构规则)
python3 scripts/vitest_config_validator.py check vitest.config.ts
# 以人类可读方式解释配置
python3 scripts/vitest_config_validator.py explain vitest.config.ts
# 给出改进建议
python3 scripts/vitest_config_validator.py suggest vitest.config.ts
# JSON 输出
python3 scripts/vitest_config_validator.py validate vitest.config.ts --format json
# 单行 PASS/WARN/FAIL 摘要
python3 scripts/vitest_config_validator.py validate vitest.config.ts --format summary
# 严格模式(警告视为错误)
python3 scripts/vitest_config_validator.py validate vitest.config.ts --strict
`
规则(22 条)
| # | 类别 | 级别 | 规则 |
|---|------|------|------|
| S1 | 结构 | E | 文件不存在或不可读 |
| S2 | 结构 | E | 配置为空或未调用 defineConfig |
| S3 | 结构 | W | 未找到默认导出 |
| S4 | 结构 | W | 同时存在 vitest.config 与带 test 段的 vite.config |
| S5 | 结构 | W | 未知顶层配置键 |
| T1 | 测试设置 | E | 无效 test environment(需 jsdom/happy-dom/node/edge-runtime) |
| T2 | 测试设置 | W | include/exclude 模式为空 |
| T3 | 测试设置 | E | include/exclude 中的 glob 模式无效 |
| T4 | 测试设置 | I | 未设置 coverage provider(推荐 c8/v8/istanbul) |
| T5 | 测试设置 | W | testTimeout 设置过高(>60000 ms)或过低(<100 ms) |
| P1 | 性能 | W | singleThread: true 与 forks pool 共用(禁用并行) |
| P2 | 性能 | W | isolate: false 无注释(测试隔离风险) |
| P3 | 性能 | I | 无 pool 配置(默认可能非最优) |
| P4 | 性能 | W | globals: true 未引用类型声明 |
| C1 | 兼容性 | W | 使用已废弃选项 |
| C2 | 兼容性 | W | css.modules 未配 css.include(可能遗漏) |
| C3 | 兼容性 | W | deps.inline 与 deps.external 冲突 |
| B1 | 最佳实践 | I | 未配置 reporter |
| B2 | 最佳实践 | I | 缺失 coverage 配置 |
| B3 | 最佳实践 | W | setupFiles 引用的模式可能不存在 |
| B4 | 最佳实践 | I | 未显式配置 snapshotFormat |
| B5 | 最佳实践 | I | 未设置 passWithNoTests(空测试套件 CI 可能失败) | 输出格式
text(默认):人类可读,前缀[E]/[W]/[I]- json:机器可读结构化输出
summary:单行PASS/WARN/FAIL
退出码
0— 无错误1— 发现错误(或--strict模式下警告)2` — 文件未找到或解析失败