最近 PicGo 2.5.3 发出去没多久,就有人来报了个很怪的问题:应用能装上,但一启动就直接报错,核心信息是 Cannot find module 'esprima'。

最开始我还以为这事大概率是 macOS arm64 打包出了岔子。毕竟最早的反馈来自 mac 用户,而且 2.5.2 明明还是好的,2.5.3 看起来也没怎么动依赖。结果没过多久,我自己在 Windows 上也复现了。到这一步就知道,事情没那么简单了。
先说结论:这次不是某个依赖“没装上”,也不是代码里手滑删了 esprima。真正的问题出在发布链路上:GitHub Actions 里 pnpm/action-setup 用的是浮动的 version: 10,PicGo 2.5.2 和 2.5.3 实际用到的 pnpm 小版本并不一样。偏偏当前 electron-builder 收集生产依赖的方式,又刚好会吃这个差异。

