SuperAPI AI 工具集

swc

编程与开发

查看项目

更新于 10-15 21:49

技能介绍

用途:SWC 是基于 Rust 的可扩展编译平台,也是 Next.js 与 Deno 内部使用的编译器,主要用于高速转译 JavaScript/TypeScript,可替代 Babel(资料称速度快至约 20 倍),并适用于 Next.js 与现代打包流程、程序化 AST 操作与代码生成、生产资源压缩。

主要能力:通过 .swcrc 配置解析与转换,支持 TypeScript 语法、tsx、装饰器、动态导入、React automatic 运行时与 React 19 JSX runtime、模块转译(es6、commonjs),并可开启压缩(compress、mangle、drop_console)、source maps、externalHelpers、keepClassNames;CLI 支持目录树转译,也提供 @swc/core Node.js API 做异步转译;测试场景可用 @swc/jest 替换 ts-jest,或用 @swc/register 提速单元测试。

使用方式:安装并配置 .swcrc,用命令行转译,例如 npx @swc/cli src -d dist;带 source maps 与复制文件可用 npx swc src -d dist --copy-files --source-maps;单文件打包压缩可用 npx swc src/index.ts -o dist/bundle.js --minify。程序化使用示例为 import swc from "@swc/core",再调用 swc.transform(code, { filename, sourceMaps, jsc, module })。Jest 配置在 transform 中使用 @swc/jest。

最佳实践:安装 @swc/helpers 并启用 externalHelpers: true;在 CI/CD 中配合 tsc --noEmit(SWC 不进行类型检查);target 可设为 es2022 或更新;生产压缩时生成 source maps 以便排错;不要提交 .swc 构建缓存目录。

限制与排查:SWC 只转译、不做类型检查;未开启 tsx、decorators 等标志会报解析错误;装饰器元数据需配置 legacyDecorator 与 decoratorMetadata;原生二进制缺失时可执行 npm install --force @swc/core。资料未提供收费、价格与平台支持等细节。