返回项目目录
开发工具精选项目

Rspack

以 Rust 构建、采用现代化 Webpack API 的高性能 Web Bundler,兼容大量 Loader 与 Plugin。

主要语言Rust
开源许可MIT
项目类型开发工具
维护状态活跃维护
OVERVIEW

项目概述

Rspack 以并行 Rust 架构提升启动、构建和热更新速度,同时保留 Webpack 熟悉的配置、Loader、Plugin、代码拆分与 Module Federation 能力,适合大型应用和 Webpack 迁移项目。

Rspack 是由 ByteDance Web Infra 团队发起、采用 MIT 许可证的高性能 Web Bundler。核心使用 Rust 实现,并以多线程、增量编译和原生优化器加速大型应用构建;配置、Loader 架构与 Plugin API 尽量对齐 Webpack 5,降低存量项目迁移成本。Rspack 2 在继续兼容 Webpack 生态的同时,引入更符合现代 JavaScript 的默认值和输出。Rspack 本身是低层 Bundler;对于缺少复杂定制的新项目,官方通常优先推荐使用其上层构建工具 Rsbuild。

当前版本Rspack 2.1.7
核心实现Rust + TypeScript
Node.js20.19+ / 22.12+
FEATURES

主要特点

Rspack 将 Rust 并行性能与 Webpack 成熟的依赖图和扩展模型结合起来。

01

Rust 并行架构

核心编译与优化阶段使用 Rust 实现,并利用多核并行处理模块图,面向大型应用降低冷启动和生产构建时间。

02

Webpack 配置兼容

Entry、Output、module.rules、resolve、optimization、devServer 等主要配置沿用 Webpack 思路,迁移通常可以从重命名配置和替换包开始。

03

Loader 生态复用

兼容大多数 Webpack Loader,包括 sass-loader、less-loader 和 vue-loader;高频转换可改用内建 SWC 与 Lightning CSS 获得更好性能。

04

Plugin API 与内置插件

支持大量 Webpack Plugin Hook,并提供 Rust 实现的 HtmlRspackPlugin、CopyRspackPlugin 和压缩插件等高性能替代方案。

05

内置 SWC

builtin:swc-loader 可转换 JavaScript、TypeScript、JSX 和 TSX,Rspack 2.1 还能直接启用 Rust 版本的 React Compiler。

06

内建 CSS 能力

支持 CSS、CSS Modules 和 CSS 提取,并可使用 builtin:lightningcss-loader 与 LightningCssMinimizerRspackPlugin 完成转换和压缩。

07

增量构建与快速 HMR

持续维护依赖图并只重新计算受影响模块,配合 Dev Server 为大型应用提供快速热更新。

08

代码拆分与 Tree Shaking

支持动态 import、SplitChunks、长期缓存、未使用代码消除和 Barrel File 优化,适合复杂应用的生产资源治理。

09

Module Federation

提供 Module Federation 支持,可在运行时共享远程模块和依赖,承接已有 Webpack 微前端方案。

10

持久化缓存与懒编译

Persistent Cache 可跨进程复用构建结果,Lazy Compilation 则延后处理尚未访问的模块,进一步改善大型项目反馈速度。

11

Rstack 工具链

可与 Rsbuild、Rslib、Rspress、Rsdoctor 和 Rstest 等工具组合,覆盖应用构建、库打包、文档、分析和测试。

USE CASES

适用场景

当构建性能已经影响团队效率,但项目又难以放弃 Webpack 生态时,Rspack 尤其值得评估。

Webpack 大型应用迁移

项目依赖 Loader、Plugin 和细粒度优化配置,但构建速度已成为瓶颈时,可分阶段替换核心包并保留多数工程约定。

中大型 React 或 Vue 应用

内置 SWC、CSS、Dev Server 与框架插件适合模块数量多、HMR 频繁且需要复杂生产拆包的应用。

微前端平台

需要继续使用 Module Federation,并希望改善多个容器和远程模块构建速度时,可以在兼容验证后迁移。

Monorepo 多应用构建

持久化缓存、并行构建和共享配置适合多个前端应用、组件包与环境目标共同维护的仓库。

复杂资源流水线

既可以复用 Sass、Less、模板和自定义 Loader,也能逐步替换为 Rust 内建转换器,在兼容与性能之间平衡。

构建平台与框架底座

低层 JavaScript API、Plugin Hook 和多配置能力适合内部平台或上层框架封装自己的开发约定。

EVALUATION

优点与注意事项

技术选型不仅要看能力,也要理解它带来的团队成本。

主要优点

Rspack 擅长的地方

  • Rust 多线程实现能显著改善大型项目的启动、构建和增量编译
  • Webpack 风格配置和 Loader 架构降低存量工程迁移门槛
  • 兼容生态与内置 Rust 实现可以按阶段替换,而非一次重写工具链
  • SWC、Lightning CSS、HTML、压缩和资源处理等常用能力具备高性能内建方案
  • 代码拆分、Tree Shaking、HMR 和 Module Federation 能力完整
  • Rspack 2 面向现代 ESM 与输出继续优化,同时保留 Webpack 兼容目标
  • 可通过 Rsbuild 等 Rstack 工具获得更开箱即用的开发体验

需要注意

采用前应考虑的问题

并非百分之百兼容 Webpack

多数配置和扩展可复用,但部分 Hook、Plugin、Loader 或输出细节仍有差异。迁移前必须查看兼容列表并运行完整测试。

Rspack 2 提高了运行环境要求

当前主线要求 Node.js 20.19+ 或 22.12+,旧 CI 镜像、开发机和原生依赖需要先升级。

原生 Binding 有平台边界

官方为常见 macOS、Linux 和 Windows 架构提供原生包;较少见平台可能需要 WASI Binding,并可能有性能或兼容差异。

Webpack 配置不能机械复制

Cache、CLI、Dev Middleware 和部分 Plugin 需要使用 Rspack 对应包或调整字段。应按迁移文档逐项映射。

CLI 与 webpack-cli 不完全相同

@rspack/cli 提供类似命令,但不是 webpack-cli 的直接兼容包,参数、默认配置文件和部分行为存在差异。

低层 Bundler 仍有配置成本

直接使用 Rspack 需要维护入口、HTML、框架转换和环境配置。常规新应用通常使用 Rsbuild 更省力。

性能应使用真实项目验证

速度收益受模块规模、Loader、Plugin、缓存和存储环境影响;不要只依据公开 Benchmark 决定迁移。

大版本现代化会带来行为变化

Rspack 2 开始采用新的默认值和更现代的输出设计。升级 1.x 项目时应阅读迁移说明并比较最终资源。

Module Federation 仍需运行时治理

构建更快不会消除共享依赖冲突、远程模块失败、版本协调和安全边界问题。

QUICK START

快速开始

下面使用官方 create-rspack 创建 React 项目,并展示一个采用内置 SWC 与 HtmlRspackPlugin 的最小配置。

1使用官方脚手架创建 React 项目
bash
npm create rspack@latest my-rspack-app -- --template react
cd my-rspack-app
npm install
npm run dev
2手动安装 Rspack 核心工具
bash
npm install --save-dev @rspack/core @rspack/cli @rspack/dev-server
3配置项目脚本
json
{
  "private": true,
  "type": "module",
  "scripts": {
    "dev": "rspack dev",
    "build": "rspack build",
    "preview": "rspack preview"
  }
}
4创建 Rspack 配置
javascript
import { rspack } from "@rspack/core";
import { defineConfig } from "@rspack/cli";

export default defineConfig({
  mode: "development",
  entry: "./src/index.tsx",
  output: {
    filename: "[name].[contenthash].js",
    clean: true,
  },
  module: {
    rules: [
      {
        test: /.(?:js|jsx|ts|tsx)$/,
        exclude: /node_modules/,
        use: {
          loader: "builtin:swc-loader",
          options: {
            detectSyntax: "auto",
            jsc: {
              transform: {
                react: {
                  runtime: "automatic",
                },
              },
            },
          },
        },
      },
      {
        test: /.css$/,
        type: "css",
      },
      {
        test: /.(png|svg|jpg|jpeg)$/i,
        type: "asset",
      },
    ],
  },
  plugins: [
    new rspack.HtmlRspackPlugin({
      template: "./index.html",
    }),
  ],
  devServer: {
    hot: true,
    port: 3000,
  },
});
5编写 React 入口
tsx
import { createRoot } from "react-dom/client";
import "./style.css";

function App() {
  const features = ["Rust", "SWC", "HMR", "Webpack compatibility"];

  return (
    <main>
      <h1>Hello Rspack</h1>
      <ul>
        {features.map((feature) => (
          <li key={feature}>{feature}</li>
        ))}
      </ul>
    </main>
  );
}

createRoot(document.getElementById("root")!).render(<App />);
6从 Webpack 迁移核心依赖
bash
npm install --save-dev @rspack/core @rspack/cli @rspack/dev-server
npm remove webpack webpack-cli webpack-dev-server

# 将 webpack.config.js 重命名为 rspack.config.js
# 再逐项核对 Loader、Plugin、Cache 与输出兼容性
7构建并预览生产版本
bash
npm run build
npm run preview

下一步:新项目如果不需要直接管理 Bundler 配置,优先评估 npm create rsbuild@latest;迁移 Webpack 时不要一次替换全部 Loader 和 Plugin,应先核对兼容清单,再用真实项目比较构建产物、HMR 和运行时行为。

ALTERNATIVES

类似项目

Webpack 是 Rspack 最直接的兼容与迁移对象;Vite 等工具代表不同的现代开发模型,上层 Rstack 工具列为外部参考。

COMPARISON

Rspack vs Webpack

Rspack 与 Webpack 共享相近的依赖图、配置、Loader 和 Plugin 模型,但 Rspack 以 Rust 并行实现追求更高构建性能,并逐步采用现代化默认值。

比较维度RspackWebpack
核心实现Rust 核心配合 TypeScript 接口JavaScript 实现
性能方向多线程并行、内置 SWC 与 Lightning CSS成熟增量编译和 JavaScript 扩展生态
配置模型现代化 Webpack API,大量字段保持兼容Webpack 原生配置与行为标准
Loader兼容多数 Webpack Loader,并提供 builtin Loader拥有最完整、最成熟的 Loader 生态
Plugin兼容大量 Hook,并提供 Rust 内置插件替代Plugin API 覆盖最完整,第三方兼容基准
Module Federation支持 Federation,可承接相关迁移内建且拥有更长期的生产实践
迁移风险需核对不兼容 API、输出和原生平台支持继续维护现有项目风险最低
Node.js 要求2.x 要求 20.19+ 或 22.12+Core 5.x 最低要求较低,但新 CLI 要求更高
更适合受构建性能困扰、又依赖 Webpack 生态的大型项目强调最大兼容性、稳定行为和完整扩展覆盖的项目
如何选择

如果现有 Webpack 项目稳定、构建时间可接受,继续使用 Webpack 通常最稳妥;如果冷启动、HMR 或 CI 构建已明显影响效率,同时大量 Loader 和 Plugin 让迁移到其他模型成本过高,可以为一条真实构建链试点 Rspack。只有在功能测试、产物比较、性能数据和回滚方案都通过后,再扩大迁移范围。

VERIFICATION

资料核验

版本、维护信息与本页采用的官方资料来源。

最后核验2026 年 7 月 29 日
核验版本Rspack 2.1.7
内容维护Docs100 编辑整理
项目维护状态活跃维护

本页依据 Rspack 官方快速开始、Webpack 迁移、CLI、Plugin API、Rspack 2.0 与 2.1 发布说明,以及 npm Registry 和官方源码仓库整理。Rspack 兼容状态和 Rstack 工具版本更新较快,迁移前应检查目标 Loader、Plugin 和框架的当前兼容清单。

维护状态核验2026 年 7 月 26 日 · 最近可见代码活动:2026 年 7 月 29 日

官方仓库未归档,核验时最近可见的代码活动日期为 2026 年 7 月 29 日。该状态表示项目近期仍有公开维护活动,不代表固定发布频率或长期支持承诺。

查看官方仓库