目标
配置文件里的拼写错误被静默忽略,CLI 以意外默认值运行。本配方解析 YAML 后用 schema 校验,校验失败时以非零码退出并打印出错的键路径,并启用严格模式让未知键暴露为错误;提醒 schema 变更可能破坏既有文件,YAML 存在意外的类型强转。
步骤要点
- 解析 YAML 并用 schema 校验。
- 校验失败时以非零码退出并打印出错键路径。
- 用严格模式暴露未知键。
- 对易歧义的标量加引号并文档化格式。
import { readFileSync } from 'node:fs';
import { parse } from 'yaml';
const raw = parse(readFileSync('config.yaml', 'utf8'));
const result = schema.safeParse(raw);
if (!result.success) {
console.error('config.yaml invalid:', result.error.issues.map(i => i.path.join('.')).join(', '));
process.exit(2);
}
排错提示
- schema 过严会破坏前向兼容。
- YAML 存在挪威问题等类型陷阱。
- 不覆盖密钥插值。
适用边界
- schema 变更可能破坏旧文件。
- 不负责密钥注入。