知微见著

Ying2026-04-22tech指南

避免使用 postinstall 替代显式 build 的原因

今天在github Actions部署时,我检查了之前的yml本地文件,上面没有写关于打包的命令,我的诉求是在线上自动打包,所以我在本地的package.json的script中添加了"postinstall": "npm run build",发现也可以实现我的诉求。

但我查了资料,AI告诉我不推荐这么做,原因有几点:

  • 语义不清晰:postinstall 的本意是在安装依赖后执行一些设置(比如编译原生模块),把构建静态网站放在这里会让维护者困惑。
  • 影响本地开发:每次你在本地运行 npm install 时也会自动执行 npm run build,如果构建耗时较长,会拖慢本地安装依赖的体验。
  • 不符合 CI 最佳实践:CI 脚本应当明确、显式地展示每一步做了什么。把构建逻辑藏到 postinstall 里会增加调试难度。

最后我还是在yml文件中添加了构建命令,这才是最优解。

Last Updated 4/22/2026, 3:13:16 PM