swc.rs
S
SWCswc.rs
SWC官网截图
点击查看大图
SWC

SWC

免费Web
1 次访问
访问网站 HTTPS 访问

SWC 是用 Rust 编写的 Web 开发工具平台,支持 JavaScript 与 TypeScript 的编译和打包,能把现代语法输出为各主流浏览器兼容的代码,并内置压缩、WebAssembly 转换与插件扩展。单线程下比 Babel 快 20 倍,四核下快 70 倍,已被 Next.js、Parcel、Deno 以及 Vercel、字节跳动、腾讯、Shopify 等采用。

核心功能

代码编译
把 JavaScript 与 TypeScript 现代语法编译为浏览器兼容代码,支持按目标环境降级。
代码压缩
内置 minify 能力,配置后压缩输出产物体积,减少网络传输与加载耗时。
模块打包
将多个模块合并打包为单一产物,适用于库发布与应用构建两种流程。
插件扩展
支持用 Rust 或 WebAssembly 编写自定义插件,插入编译与转换流程。
在线演练
官网提供 Playground,粘贴代码即可实时对比不同目标环境下的编译输出。
Webpack 集成
通过 swc-loader 替换 babel-loader,接入 webpack 与 Rspack 构建链路。
Jest 加速
用 @swc/jest 替换 babel-jest,缩短测试文件的转换与执行时间。
跨平台二进制
提供 Mac、Linux、Alpine、Android、Windows 等预编译二进制包。
源映射
生成 source map 文件,便于在生产环境定位原始代码位置排查问题。
Rust 接口
提供 Rustdocs 与 Rust API,可在 Rust 项目中直接调用编译能力。

使用指南

  1. 1

    访问 https://swc.rs 阅读文档,确认本地 Node.js 与包管理器版本。

  2. 2

    在项目目录执行 pnpm add -D @swc/cli @swc/core 安装命令行与核心包。

  3. 3

    新建 .swcrc 配置文件,按需设置 jsc.target、module 类型等编译选项。

  4. 4

    运行 npx swc ./file.js 转换单个文件,加 -d 参数可输出到指定目录。

  5. 5

    编译整个源码目录:npx swc src -d dist,把编译结果写入 dist 目录。

  6. 6

    需要压缩时在 .swcrc 中开启 minify,或使用 -C minify=true 参数。

  7. 7

    在 webpack 或 Rspack 项目中用 swc-loader 替换 babel-loader 加快构建。

  8. 8

    在 Jest 项目中把 transform 改为 @swc/jest,缩短测试运行耗时。

  9. 9

    打开官网 Playground 粘贴代码,观察不同目标环境下的编译输出差异。

优势亮点

  • 单线程比 Babel 快 20 倍、四核快 70 倍,缩短本地构建与 CI 流水线耗时。

  • 已被 Next.js、Parcel、Deno 采用,swc-loader 可直接替换 babel-loader。

  • 编译、压缩、打包、WebAssembly 转换与插件扩展集中在一套工具内。

  • 提供 Mac、Linux、Alpine、Android、Windows 等预编译二进制,安装门槛低。

使用须知

定价: SWC 以 MIT 许可开源,命令行、核心包与官方插件均可免费使用,不收取授权费用,作者通过 GitHub Sponsors 与捐赠渠道获得支持。企业如需商业级技术支持或定制插件开发,需自行与维护方沟通,具体条款以官网定价为准。个人开发者与初创团队直接使用开源版本即可满足日常构建需求;大型团队建议先评估内部插件维护成本再决定投入方式。

价格和授权政策可能变化,请以官网最新信息为准

访问第三方网站时,请注意以下事项:

  • 谨慎提供个人账号、密码和支付信息
  • 下载文件前确认来源安全,警惕诱导性广告
  • 涉及版权素材使用时,请核实授权范围
  • 如遇网站无法访问或内容异常,可反馈给我们

常见问题

SWC 是用 Rust 编写的 JavaScript 与 TypeScript 编译工具,功能上覆盖 Babel 的转译任务。区别在于实现语言不同,SWC 单线程比 Babel 快 20 倍、四核快 70 倍,同时额外提供打包、压缩与 WebAssembly 转换能力。

执行 pnpm add -D @swc/cli @swc/core 或使用 npm、yarn 安装同名包,然后在项目根目录创建 .swcrc 配置文件,运行 npx swc src -d dist 即可把源码目录编译到输出目录。

官方提供 Mac(Apple Silicon 与 x64)、Linux(x86_64、aarch64、armv7)、Alpine、Android aarch64、Windows(win32-x64、ia32)等预编译二进制,可通过包管理器自动匹配,也可以从源码自行构建。

可以。Next.js、Parcel、Deno 已将 SWC 作为编译内核,Vercel、字节跳动、腾讯、Shopify、Trip.com 等公司在生产环境使用。建议锁定版本号并保留回归测试,避免升级时出现编译行为差异。

SWC 支持 Rust 原生插件与 WebAssembly 插件两种形式。Rust 插件性能更好但需要编译工具链,WebAssembly 插件分发方便、跨平台。官方文档提供了插件模板与示例,建议从简单转换逻辑开始验证。

如果项目重度依赖 Babel 插件生态或需要 WebAssembly 转换、Jest 加速,优先考虑 SWC;如果只需要极简的打包与转译、插件需求很少,esbuild 的集成成本更低。两者也可以在同一构建链路中分工使用。

深度了解

SWC 是一个用 Rust 编写的 Web 开发工具平台,定位为下一代快速开发者工具的底层编译引擎。它与 Babel 处理同一类任务,即把 JavaScript 和 TypeScript 代码转译成目标环境可运行的产物,区别在于实现语言换成 Rust,并在此基础上扩展出压缩、打包与插件能力。

功能方面,SWC 支持 JavaScript 与 TypeScript 编译、代码压缩、模块打包、WebAssembly 转换,可通过自定义插件扩展转换流程,也提供 swc-loader 与 @swc/jest 分别接入 webpack 和 Jest。安装时执行 pnpm add -D @swc/cli @swc/core,配置 .swcrc 后运行 npx swc src -d dist 即可完成目录编译,官网 Playground 可在线查看编译输出。

使用场景集中在三类:一是 webpack、Rspack 等构建工具中替换 babel-loader,缩短冷启动时间;二是 Node.js 项目中直接转译 TypeScript,省去额外编译步骤;三是替换 babel-jest 加快单元测试。Next.js、Parcel、Deno 已将其作为编译内核,Vercel、字节跳动、腾讯、Shopify、Trip.com 等公司在生产环境使用。

竞品对比上,Babel 插件生态最成熟,但速度受限于 JavaScript 运行时;esbuild 用 Go 实现,打包速度突出,插件体系和语法覆盖相对有限;Oxc 起步较晚,生态仍在建设中。SWC 的路线是兼顾编译与打包,把插件机制做成可扩展层,同时通过已有工具链集成降低迁移成本,官方基准显示单线程比 Babel 快 20 倍,四核下快 70 倍。

人群建议:前端工程师、Node.js 后端开发者、构建工具维护者和开源库作者可以优先尝试;项目如果高度依赖 Babel 现成插件,迁移前需要评估插件替代方案;追求打包极致速度且插件需求简单的项目,可以把 esbuild 作为对照方案后再决定。

用过SWC?说说你的真实体验

你的点评会帮助上千万人避坑选型——匿名发表,无需注册,30 秒即可完成

用户评价

还没有评分

成为第一个评价 SWC 的人

我的评分

随下方评论一并提交

内容质量
使用体验
加载速度
安全可靠
总体评价非常满意
0/500
访问第三方网站时,请注意账号、隐私与支付安全