1. pre/post 钩子不是“自动魔法”,而是 npm 的隐式状态机我第一次在团队代码库里看到"prebuild": "npm run clean"这行配置时,以为它只是个语义化的注释——毕竟build脚本执行前顺手清个目录,逻辑上很自然。直到某天 CI 流水线在build成功后报出dist/目录不存在的错误,而本地npm run build却一切正常。排查了三小时,才发现是prebuild在某些 Node.js 版本下根本没触发,而clean脚本里那句rm -rf dist/又被 AI 编程工具生成时默认加了-f参数,导致dist/被静默删掉,但后续构建因权限或缓存问题失败,最终产物缺失。这不是个例。我们团队用 AI 辅助编写 npm scripts 的项目中,超过 68% 的 pre/post 钩子配置存在执行顺序误判。AI 编程工具(比如你正在用的 Cursor、Trae 或基于 Claude Code 的本地插件)能秒级生成package.json中的脚本模板,但它不会告诉你:npm run build触发的prebuild,和npm run dev触发的predev,压根不在同一个执行上下文里;也不会提醒你:npm install自带的p