next项目从14.2.10升级15.4.2过程(因turbopack对mdx支持度原因没有升上去)
- 为什么要升级项目版本
- 项目启动太慢,想从webpack改到turbopack(next的15.4版本turbopack已经可以上生产配置)
- 项目热更新很慢已经成为开发痛点,有时甚至会影响调试
- 升级后的next版本和当前的版本有多大差距
- 默认关闭所有显示缓存
- cookies()、headers()这两个都改成异步调用之前用的地方也要改造,实际项目确实有使用比如i18n多语言
- 本地启动速度 +76.7%,热更新速度 +96.3%官方数据,实测确实非常快(14的版本的turbopack是实验属性,15已经稳定虽然还没发布正式,但是都已验证完成,16版本会纳入正式)
- 支持next.config.ts提供类型安全和自动补齐,也相应的集成和移除了一些配置就不细说了
- 新增的next/after 非阻塞任务比如日志、埋点、分析,相应完成后执行
- 升级后遇到的改动(说句实话14升15改动量相当的大)
- 相对地址没问题,绝对地址~@/这种全部需要替换,统一放到public下面
- cookies()、headers() 全部改成异步调用
- sass里import的css包不再支持,统一放到引入使用的外面
- turbopack支持基础的mdx文件,但是复杂的mdx流程不支持比如使用了remark-gfm等一类的包
现在被卡在这个mdx的文件处理上,因为项目是用的开源的项目进行二开的,业务非常的复杂,拆解是拆不了一点的,只能等后续turbopack支持完整的mdx流程了,再继续升,我好想用啊,页面加载是真的快