SWC (Speedy Web Compiler) là compiler JS/TS viết bằng Rust — nhanh hơn Babel 20-70 lần khi chạy đơn luồng, và tới 70 lần khi tận dụng nhiều core.
- Trong Next.js: từ bản 12, SWC thay Babel ở khâu transpile và thay Terser ở khâu minify — cold build nhanh gấp 5, HMR nhanh gấp 3. Nếu project còn
.babelrc, Next.js tự phát hiện và migrate. - Tương thích: SWC làm được hầu hết transform của Babel — tương đương preset-env, TypeScript, JSX, decorator.
- Dùng ở đâu:
@swc/coregọi trực tiếp trong script Node.js,swc-loadercho Webpack, và@vitejs/plugin-reactcũng chạy được trên SWC. Deno dùng SWC nội bộ để transpile TypeScript.
Hạn chế nằm ở hệ plugin: plugin SWC viết bằng WebAssembly nên khó làm hơn plugin Babel (chỉ là JS), và hệ sinh thái nhỏ hơn nhiều. Một số transform nâng cao của Babel — custom macro, babel-plugin-macros — vẫn chưa có bản tương đương.
Khi nào chưa chuyển được: project phụ thuộc plugin Babel đặc thù (babel-plugin-styled-components, babel-plugin-import để tree-shake) hoặc cần transform tự viết.