如何让我的npm build脚本实现稳定一致的执行效果?
问题分析与解决
你的npm脚本执行异常,核心原因大概率是TypeScript增量编译缓存或者rimraf 5.x的调用/路径匹配问题,以下是针对性解决步骤:
1. 清理TS增量编译缓存
如果你的tsconfig.json中开启了"incremental": true(不少项目模板默认开启),TypeScript会生成*.tsbuildinfo缓存文件。当prebuild仅删除dist和types时,缓存文件会让tsc判定“无需重新编译”,导致第三次执行只删不生成,首次执行也可能因缓存逻辑异常未触发编译。
修改prebuild脚本,把缓存文件也加入删除列表:
"prebuild": "rimraf dist types *.tsbuildinfo", "build": "tsc"
2. 确保调用本地安装的rimraf
rimraf 5.x默认是ES模块,部分环境下直接调用可能出现隐式错误(无报错但未执行删除),改用npx调用本地依赖版本,避免全局版本冲突:
"prebuild": "npx rimraf dist types *.tsbuildinfo", "build": "tsc"
3. 合并脚本(备选方案)
如果pre钩子执行逻辑存在异常,可以跳过pre脚本,直接把删除和编译命令合并:
"build": "rimraf dist types *.tsbuildinfo && tsc"
4. 排查隐性错误
如果以上方法无效,执行npm run build --verbose查看详细日志,确认prebuild和build阶段是否都正常执行,排查是否有隐性错误被吞掉。
内容的提问来源于stack exchange,提问作者Viriato
相关产品推荐
相关产品推荐

