生成出来的 14 个文件里有 9 个仍带着 {{projectName}} 和 {{author}},编译报 Unexpected token '{',页面直接白屏。乍看像缓存或者权限的锅,追下去往往不是。
grep -rn '{{' src/ | head
find . -name '*.tsx' -exec grep -l '{{' {} +
追下去是这么回事:文件先被复制到目标目录,再按后缀过滤做渲染,.tsx 和 .md 不在白名单里,跳过了替换。另有一层模板引擎把 {{ }} 当作自己的语法提前吃掉。
「模板变量未替换」这类改动最怕改一半,回滚脚本先准备好,再动生产。一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。
先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
具体做法是,渲染改成先渲染再落盘 不要先复制后替换;白名单改成黑名单 只有二进制文件才跳过;检查模板引擎的定界符 和项目里的插值语法错开;生成后扫一遍目标目录 发现未替换的占位符直接失败。
验收就看一点,重新生成后全目录 grep 不到 {{ 项目能通过 tsc 编译。
