GitHub Actions 里跑生成器,报 ENOENT: no such file or directory, open '/root/.config/create-app/config.json',本地同一命令正常。日志里能对上时间点,这种反而好排。
生成器启动时读用户配置目录,没有就交互式询问,CI 里没有 TTY,readline 直接失败。目录也不存在,写配置又抛 ENOENT。这一点先确认清楚,后面就不用反复试。
node bin/gen.js --yes --config ./gen.config.json --module order CI=true node bin/gen.js --yes --module order
「生成器 CI 运行」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。偶发问题先统计频率,一小时几次和一天一次,查法完全不同。
改完顺手把文档补一句,省得下次自己重新推一遍。监控和日志的时间要对上,时区不一致会多绕很大一圈。
临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。
处理上按这个顺序:增加 --yes 和 --config 参数 跳过所有交互;配置目录不存在时自动创建 或者直接用参数覆盖;CI 里显式传全部参数 不依赖用户目录;在流水线里加一步 --dry-run 校验参数。
结果对不对很好判断,在无 TTY 的容器里执行生成命令成功 退出码 0 不产生 /root/.config 依赖。
