04.展望babel与前端代码转译

145 阅读1分钟

cloud.tencent.com/developer/a…

babel是Sebastian McKenzie在2014年时,他还在高中时期开始写的一款工具,而Sebastian McKenzie同时是前端另一款非常流行的工具yarn的创始人。

babel干了什么

新语法的代码转为浏览器支持的老语法代码

babel的问题--慢

Babel是JavaScript写的,JavaScript就是有点慢

用JS写的babel 不能用多核cpu处理编译任务链

替代品

更快的babel

swc

swc.rs/docs/gettin…

swc是2019由Kang Dong Yoon发布的

Speedy Web Compiler

swc是基于Rust语言

swc对标babel

swc 和 babel 命令可以相互替换,并且大部分的 babel 插件也已经实现

而最近的一个next.js 12版本,它们也迁移至了swc,据其官网反馈:

"Compilation using the Next.js Compiler is 17x faster than Babel and enabled by default since Next.js version 12."

它们说有17倍的速度提升,确实太惊人了。

esbuild

esbuild.github.io/

esbuild是由 Evan Wallace在2020写的, Evan Wallace是Figma的创始人。

esbuild是由go语言写的。

可能前端人员对go不是非常熟悉,在后端领域,go现在非常火爆,它以杰出的性能而闻名。

而最近比较流行的Vite工具,它就是使用的esbuild,所以它非常快。

代码分割和css处理方面有问题,现阶段不建议在生产环境构建bundler

新的架构

总结

上一个十年是框架和库百花齐放的十年

下一个十年是打包器编译器百花齐放的十年

变化的是各种打包器,编译器,工具,框架,库。

不变的是 基础的html,css,js。基础永远都很重要。