今天我们一个nextjs项目要发布到生产环境,由我来做发布,和测试环境相比只是切一个分支换一个环境变量构建而已,但是偏偏就打包失败了,一直报如下的错误。
根据经验分析 + 利用搜索引擎,无非只有以下几个结论:
next.config.js配置有误package.json需要配置module:"type"- 有的组件不支持服务端渲染
经过长达3小时的排查没有找到相关的问题。回到本地做打包测试,也会报错;把版本回滚到一周前,仍然报错。这时候也算是发现了问题的突破口了,服务器的测试环境部署非常频繁,每天都会进行更新也从来没有遇到过报错呀。
经过反复对比发现是服务器上的yarn.lock和本地的不一样(可能是团队某成员干的🥹),而平时也没有在本地打包构建的需求,所以长久以来没有发现这个问题。
所以结论很简单,package.json和yarn.lock一定要保持最新版本同步到仓库中。