Next.js 13 发布,推出快 700 倍的基于 Rust 的 Webpack 替代品
Next.js 13 现已发布,一些亮点更新内容包括:
app/
Directory (beta):更简单、更快、更少的客户端 JS。- Turbopack (alpha):速度提高 700 倍的基于 Rust 的 Webpack 替代品。
- 新的
next/image
(stable):native browser 延迟加载速度更快。 - 新的
@next/font
(beta):具有零布局偏移的自动自托管字体。 - 改进
next/link
:Simplified API with automatic<a>
。
更新:
npm i next@latest react@latest react-dom@latest eslint-config-next@latest
app/
Directory (beta)
通过引入 app/ directory (beta) 来改进 Next.js 中的路由和布局,这是之前为征求社区反馈而发布的 Layouts RFC 的结果。包括对以下内容的支持:
- Layouts:轻松共享 UI,同时保留状态并避免重新渲染。
- Server Components:使服务器优先成为大多数动态应用程序的默认设置。
- Streaming:显示即时加载状态并流式传输更新。
- Suspense for Data Fetching:新的
use
hook 支持 component-level fetching。
该 app/ directory 可以与现有 pages directory 共存以进行 incremental adoption。公告指出,虽然在升级到 Next.js 13 时不需要使用该 app/ directory,但其正在为构建复杂的 interfaces 奠定基础,同时减少 JavaScript 的数量。
引入 Turbopack (alpha)
Next.js 13 中包含 Turbopack —— Webpack 的新的基于 Rust 的继任者。
“Webpack 已被下载超过30 亿次。虽然它是构建 Web 不可或缺的一部分,但我们已经达到了基于 JavaScript 的工具所能达到的最大性能的极限。在 Next.js 12 中,我们开始过渡到 native Rust 驱动的工具。我们首先从 Babel 迁移,这导致转译速度提高了 17 倍。然后,我们替换了 Terser,这使得 minification 提高了 6 倍。现在是时候全身心投入到原生的捆绑工作中去了。”
将 Turbopack alpha 与 Next.js 13 一起使用可以:
- 更新速度比 Webpack 快700 倍
- 更新速度比 Vite 快 10 倍
- cold starts 速度比 Webpack 快 4 倍
根据介绍,Turbopack只捆绑开发中所需要的最小资产,所以启动时间非常快。在一个有3000个模块的应用程序中,Turbopack的启动时间为1.8秒。Vite需要11.4秒,Webpack需要16.5秒。
Turbopack 对服务器组件、TypeScript、JSX、CSS 等提供了开箱即用的支持。不过在 Alpha 版期间,许多功能尚不受支持。
注意: Next.js 中的 Turbopack 目前仅支持
next dev
,可查看支持的功能。开发团队还在努力通过 Turbopack添加next build
支持。
可在 Next.js 13 中通过next dev --turbo
试用 Turbopack alpha。
更多详情可查看官方公告。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Gleam v0.24 发布,Rust 编写的函数式编程语言
Gleam 是一种类型安全且可扩展的编程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。Gleam v0.24 现已发布,具体更新内容包括: In-project Elixir support Gleam 构建工具一直支持编译用Gleam或Erlang编写的模块,但现在它也支持Elixir模块。当你运行gleam build、gleam test等时,src目录下的任何Elixir代码的.ex文件将自动为你编译。 $ tree # . # ├── gleam.toml # └── src # └── project.ex # # 1 directories, 2 files $ gleam run # Hello from Elixir in a Gleam project! 这意味着 Gleam 项目现在可以充分利用 Elixir 的代码和库,包括那些使用 Elixir macro system 的项目。“值得注意的是,这并不意味着我们正在对 Elixir 代码进行类型检查或可以分辨出任何 Elixir 函数的类型签名。Elixir 代码将...
- 下一篇
Chrome 107 正式发布
Chrome 107 正式发布了,这个版本没啥新功能,基本都是优化和安全漏洞修复,以下是部分新特性: 以 125 Hz 对齐计时器(包括 DOM 计时器):在常规的 8ms 对齐唤醒 (125 Hz) 上以非零延迟运行所有计时器,可提供更好用户体验并消耗更少资源。 CSS 网格模板属性插值:在 CSS Grid 中,grid-template-columns 和 grid-template-rows 属性用于定义行名和跟踪网格列和行的大小。支持这些属性的插值将允许网格布局在状态之间平滑过渡。 启用 HEVC 硬件解码:支持在可用于解码 HEVC 的硬件(例如,GPU、媒体加速器等)的平台上解码 HEVC 视频(Android 5.0+、macOS 11+, Windows 8+ 和 ChromeOS ) Expect-CT,Expect-CT 是一个 HTTP 标头,与证书透明度有关。 URLPattern 忽略大小写 Resource Timing 中的渲染阻塞状态,向 PerfomanceResourceTiming 添加一个字段,以指示资源的渲染阻塞状态。 “减少用户代理”第五阶...
相关文章
文章评论
共有0条评论来说两句吧...