Q7 · 编译器
请详细描述 SWC 原理?
⚡ 速记答案(30 秒)
- SWC = 用 Rust 写的 JS/TS 编译器,流程也分 Parse / Transform / Codegen
- 解析阶段用 Rust 生成 AST
- 转换阶段使用高性能的 Rust 实现各种 transform(TS → JS、ESNext → ES5 等)
- 相比 Babel:同样功能下更快、更省内存,适合作为编译/打包链路底座
📖 详细讲解
SWC vs Babel
| 对比项 | Babel | SWC |
|---|---|---|
| 语言 | JavaScript | Rust |
| 速度 | 基准 | 20-70x 更快 |
| 内存 | 较高 | 较低 |
| 插件 | 丰富 | 有限 |
SWC 特点
1. 高性能
• Rust 原生编译,零 GC 开销
• 并行处理优化
2. 功能覆盖
• TypeScript 编译
• JSX 转换
• 语法降级
• 代码压缩(替代 Terser)
3. 集成方式
• swc-loader (Webpack)
• @swc/core (API)
• Next.js 内置
面试技巧:回答工程化问题时,结合你实际项目中的配置和优化经验,更有说服力。