Babel、SWC、Terser、esbuild 各自负责什么?为什么现在推崇 SWC/esbuild?

工具 语言 职责
Babel JS 语法降级(ESNext→ES5)、polyfill、JSX 转换,插件生态极丰富
SWC Rust 同 Babel 的转译能力,但快 10-100x,Next.js 默认用它
Terser JS 代码压缩/混淆(生产 JS 压缩)
esbuild Go 转译+打包+压缩一体,极快,Vite 开发期用它

为什么推崇 Rust/Go 系:Babel 是 JS 写的,单线程、慢;SWC(Rust)/esbuild(Go)编译速度数量级提升,大型项目构建/启动从分钟级降到秒级。

现状:Vite 开发用 esbuild、Next.js 用 SWC 做转译;生产压缩仍常用 Terser(压缩率略好)或 esbuild 的压缩(更快)。

同分类其他题目