Q7 · 编译器

请详细描述 SWC 原理?

SWCRust编译器

⚡ 速记答案(30 秒)

  • SWC = 用 Rust 写的 JS/TS 编译器,流程也分 Parse / Transform / Codegen
  • 解析阶段用 Rust 生成 AST
  • 转换阶段使用高性能的 Rust 实现各种 transform(TS → JS、ESNext → ES5 等)
  • 相比 Babel:同样功能下更快、更省内存,适合作为编译/打包链路底座

📖 详细讲解

SWC vs Babel


对比项BabelSWC
语言JavaScriptRust
速度基准20-70x 更快
内存较高较低
插件丰富有限

SWC 特点


1. 高性能

• Rust 原生编译,零 GC 开销

• 并行处理优化


2. 功能覆盖

• TypeScript 编译

• JSX 转换

• 语法降级

• 代码压缩(替代 Terser)


3. 集成方式

• swc-loader (Webpack)

• @swc/core (API)

• Next.js 内置

💡
面试技巧:回答工程化问题时,结合你实际项目中的配置和优化经验,更有说服力。