阅读 79

Next.js 12 重大发布

这两天,Next.js 12 版本发布,是迄今为止最大的一个版本,看了之后又很多让人激动的新特性。

Rust 编译器的支持

对JS生态圈,又是一颗重磅炸弹,标志着非JS语言对JS生态圈的进一步入侵。

Next.js 12用的是 SWC,之前招聘了SWC的作者DongYoon Kang,这次终于用在生产环境了。现在很多项目,比如vite 用的 esbuild。 不可阻挡的是,以后越来越多的工作会由其他语言来承担。js工具链上的语言会越来越丰富。像babeljs,webpack等会逐渐示弱。

除了 SWC作者,发现Next.js还招聘了 另外一个著名编译工具parcel的核心开发者之一Maia Teegarden。

用了SWC 后,官方给出的结论是 提高了3倍的刷新速度和5倍的构建速度

在转化js和ts代码方面,swc比babel快17倍,在压缩方面比Terser快7倍。

为了兼容babel转换,还特意用Rust写了一个新的Css Parser。

Babel可以用JS写自己的插件,如果今后用Rust,碰到定制需求怎么处理,还有存量的Babel插件如何解决,这是摆在我们面前的一个问题。

React 18 支持

现在 React 18 还没有正式发布,但是Next.js已经支持,非常与时俱进,可以在实验模式打开。

当前就可以用 Suspense, Server Components等诸多特性

ES模块和URL imports支持

这个特性也让人喜出望外,浏览器原生支持ES 模块,可以大大的减少模块依赖解析的时间,很多工具比如vite和snowpack就是基于此开发的。

除了模块解析,浏览器还支持直接从远程载入js,比如

import confetti from 'https://cdn.skypack.dev/canvas-confetti'复制代码

就不需要在本地安装了。

如果再进一步,配合import maps,本地依赖node_modules几乎为0,这一块rails7走在了前面。

现在 ES 模块原生支持+http2 + cdn,可以解决让人头疼的node_modules体积超大问题,以后构建这步就可以跳过,大大节省了时间,当然这需要很多努力。

图片 AVIF 支持

这是种新的图片格式,2019年才正式提出,比webp的体积都小20%。

Next.js可以根据浏览器嗅探,自动选择用AVIF或Webp。

按需打包

分析依赖,只打需要的包,大大减少了体积。

可以看到这些举措的进步是非常巨大的,完全有理由去试试这个框架


作者:章伟东
链接:https://juejin.cn/post/7024337212158246948

文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐