大家好,我是五月君,Next.js 13.5 版本于本周发布,从官方的发布博客看,不像 13.4 带了很多新功能。本版本主要侧重于性能优化,例如提高了本地服务器启动速度、HRM(热更新)速度、减少了内存占用以及 438 个 bug 的修复(这个 Bug 数量是真的不少看来用的人也不少哈~)。
开发环境速度慢,你是否有遇到?
之前使用 Next.js 13.4 版本,开发环境随着模块数量的增多,特别消耗内存,速度也很慢(生产环境似乎没有这个问题)当时的方案是升级到 13.4.8 之上会好很多,但还有优化的空间,因为还是不能和 Vite 这种闪电般的速度比拟!详情参见这个 Issue 的讨论 https://github.com/vercel/next.js/issues/48748。
不过现在可以考虑升到 13.5 版本测试下了。
13.5 提升了本地开发性能和可靠性
以下是 Next.js 13.5 对于本地开发性能和可靠性的提升:
- 本地服务器启动速度提高了22%:通过 App & Pages Router 实现更快的迭代。
- HMR(Fast Refresh)速度提高了29%:在保存更改时进行更快的迭代。
- 内存使用减少了40%:在运行 next start 时测得。
- 优化的包引入:在使用常见图标和组件库时进行更快的更新。
- next/image 改进:新增 <picture>、艺术方向以及暗模式支持。
- 修复了超过 438 个 Bug!
性能提升主要来自于以下优化措施(这些了解即可,对于开发者只有一个感受,“快” 就对了):
- 通过缓存或最小化缓慢操作来减少工作量。
- 优化昂贵的文件系统操作。
- 在编译期间更好地增量遍历树。
- 将不必要的阻塞同步调用移到惰性执行。
- 自动配置大型图标库。
Turbopack 还处于 Beta 阶段
之前 “号称比 Vite 快 10 倍的 Turbopack” Next.js 团队还正在进行开发以进一步提高性能,目前 Turbopack 还处于 Beta 阶段,只支持 next dev,不支持 next build。
之前因为使用 v13.4 在开发模式下太慢,也采用 Turbopack 做了测试,还是没能解决问题,还遇到了一些兼容性问题,也可能是笔者的使用姿势不对?