发布时间:2026/8/10 10:39:44
把 webpack 项目迁到 Rspack 2.0:依赖从 192 砍到 1,万组件构建缓存命中仅需 1.4s 背景webpack 的老问题与 Rspack 的新答案如果你的前端项目还在用 webpack 5你大概率经历过这些痛点生产构建慢中大型项目动辄十几秒甚至几十秒CI 流水线里构建步骤成了瓶颈。依赖臃肿node_modules里塞满了间接依赖webpack-dev-server一装就拉来上百个包。HMR 不够快改一行代码等一两秒才刷新在万组件级项目里体验尤其明显。字节跳动开源的Rspack从 1.0 开始就以「Rust 写的 webpack 替代品」定位进入开发者视野。2026 年 7 月 29 日Rspack 团队正式发布了2.0 版本——这不再只是「更快一点的 webpack」而是一次有意识的架构升级默认行为向现代 JavaScript 开发对齐、核心包全面转为纯 ESM、默认依赖数量断崖式下降。图0文章封面概念示意图官方在包含1 万个 React 组件的基准项目rspack-react-10k-benchmark上给出了如下数据版本生产构建无缓存生产构建持久化缓存命中HMR 热更新Rspack 1.05.6 s5.6 s128 msRspack 1.73.6 s2.2 s134 msRspack 2.03.1 s1.4 s118 ms数据来源Rspack 2.0 官方发布博客。2.0 相比 1.7 整体性能提升约10%相比 1.0 最多可提升100%。图1Rspack 官方 rspack-react-10k-benchmark 基准1 万组件 React 项目。数据为官方发布基准非本文实测。除了构建速度2.0 另一个亮眼的改进是依赖精简包1.x 依赖数2.0 依赖数安装体积变化rspack/dev-server192115 MB →1.4 MB90%rspack/core81——rspack/cli多个0——图2Rspack 2.0 默认依赖大幅精简官方发布数据。rspack/cli在 2.0 变为零依赖且不再默认引入 dev-server。本文将以一个真实的 webpack 5 项目为例手把手走完迁移到 Rspack 2.0 的全流程并标注每一步需要注意的坑点。环境准备Node.js 版本要求Rspack 2.0 要求 Node.js ≥ 20.19 或 ≥ 22.12不再支持 Node.js 18。这是相比 1.x 的重要变化迁移前务必先确认node -v # 期望输出 v20.19.0 或 v22.12.0如果版本不满足请先升级 Node.js。推荐使用 nvmmacOS/Linux或 nvm-windowsWindows管理多版本。来源 Rspack 快速开始 —— 版本要求、 从 v1 升级到 v2安装 Rspack 2.0在项目目录下执行# 移除旧依赖 npm remove webpack webpack-cli webpack-dev-server 安装 Rspack 2.0纯 ESM 包 npm add rspack/core^2.0.0 rspack/cli^2.0.0 -D 如果需要开发服务器rspack dev / rspack serve npm add rspack/dev-server^2.0.0 -D注意rspack/cli和rspack/dev-server在 2.0 中都是可选依赖。如果你只用rspack build做生产打包不需要安装 dev-server。第一步替换 package.json 脚本将构建脚本从 webpack 切换到 Rspack CLI{ scripts: { dev: rspack dev, build: rspack build, preview: rspack preview } }Rspack CLI 支持与 webpack 类似的-c / --config参数指定配置文件。如果不指定默认读取rspack.config.js或.mjs。第二步重命名并改造配置文件将webpack.config.js重命名为rspack.config.mjs推荐使用.mjs以匹配 2.0 的纯 ESM 生态然后做以下关键改动2.1 缓存配置迁移webpack 的cache.type: filesystem在 Rspack 中对应cache.type: persistent// rspack.config.mjs import { rspack } from rspack/core; export default { // Rspack 持久化缓存 cache: { type: persistent, buildDependencies: [ import.meta.url, ./package.json, ], }, };开启持久化缓存后二次构建命中缓存的速度会显著提升。官方数据显示 SWC 压缩插件的结果也可被缓存复用缓存命中时构建性能再提升约50%内存占用下降20%。2.2 用 builtin:swc-loader 替代 babel-loaderRspack 内置了基于 SWC 的转译器原生支持 TypeScript、JSX 和最新 ECMAScript 语法。如果你的babel-loader仅用于这些用途可以直接移除// rspack.config.mjs export default { module: { rules: [ { test: /\.(?:js|mjs|jsx|ts|tsx)$/, loader: builtin:swc-loader, options: { detectSyntax: auto, jsc: { parser: { syntax: typescript, tsx: true, }, transform: { react: { runtime: automatic, }, }, }, }, }, ], }, };如果你的 babel 配置包含自定义插件/预设如 styled-components、i18n 等则需要保留 babel-loader。但建议评估是否有 Rspack/SWC 原生替代方案因为 babel-loader 在大项目中会显著拖慢构建速度。2.3 插件替换映射大部分 webpack 内置插件和社区插件可直接使用但部分需要换成 Rspack 自带版本webpack 插件 / loaderRspack 2.0 替代webpack.HotModuleReplacementPluginrspack.HotModuleReplacementPlugincopy-webpack-pluginrspack.CopyRspackPluginmini-css-extract-pluginrspack.CssExtractRspackPluginCssExtractRspackPlugin.loadercss-loader保留不变兼容示例——CSS 提取// rspack.config.mjs import { rspack } from rspack/core; export default { plugins: [ new rspack.CssExtractRspackPlugin(), ], module: { rules: [ { test: /.css$/i, use: [rspack.CssExtractRspackPlugin.loader, css-loader], type: javascript/auto, }, ], }, };第三步处理破坏性变更从 1.x 升级到 2.0 有若干不兼容变更需要逐一处理exportsPresence 默认值变更module.parser.javascript.exportsPresence默认值从warn变为error。当代码引用了不存在的导出时现在会直接报错而非仅警告// 如需恢复旧行为不推荐长期使用 export default { module: { parser: { javascript: { exportsPresence: auto, }, }, }, };devServer 部分选项变更devServer.proxy、devServer.watchFiles等选项发生了变化。具体差异请查阅 升级指南 的「开发服务器」章节。--analyze 已移除rspack/cli内置的webpack-bundler-analyzer已被移除--analyze参数不可用。推荐使用RsdoctorRspack 团队出的构建分析工具替代npm add rsdoctor/rspack-plugin -D然后在配置中引入即可。Pure ESM 包rspack/core、rspack/cli、rspack/dev-server在 2.0 中以纯 ESM形式发布移除了 CommonJS 构建产物。Node.js 20 运行时已原生支持require(esm)加载 ESM 模块所以通过 JavaScript API 使用 Rspack 的项目通常无需修改代码。但建议新配置文件统一使用import/export default语法。第四步完整迁移流程示意以下是从头到尾的迁移步骤总览图3webpack 5 → Rspack 2.0 迁移流程概念示意。实际操作中各步骤可能因项目复杂度有所调整。第五步测量验证完成配置迁移后用以下方式测量构建耗时# 无缓存完整构建 time rspack build 清除缓存后再测一次确保冷启动 rm -rf node_modules/.cache/rspack time rspack build 再次构建命中持久化缓存 time rspack build以上命令输出的是你本地项目的实际数据会因项目规模、硬件配置和插件组合而异。本文引用的 1.4s / 3.1s 等数字是 Rspack 官方在 1 万组件 React 基准项目上的测试结果不代表你的项目一定能达到相同数值。如果遇到构建错误优先检查以下几点Node.js 版本是否 ≥ 20.19。是否遗漏了rspack/dev-server的单独安装使用rspack dev时必需。插件名是否已替换为rspack.*前缀版本。cache.type是否为persistent而非filesystem。避坑清单汇总迁移过程中最容易踩的坑#坑点解决方案1Node 版本不够升级后忘记查 Node 版本直接npm install报错先执行node -v确保 ≥ 20.19 / 22.122dev-server 找不到rspack dev报Cannot find module rspack/dev-server2.0 中 cli 不再默认依赖 dev-server需手动npm add rspack/dev-server -D3cache 字段照搬复制 webpack 的filesystem配置导致缓存不生效改为cache: { type: persistent }4babel-loader 拖慢速度迁移后保留了不必要的 babel-loaderTS/JSX/ESNext 交给builtin:swc-loader仅在确实需要 Babel 插件时保留5exportsPresence 报错之前只是 warn 的导出引用问题变成 error显式设为auto或修复源码中的无效导入6--analyze 失效习惯性加--analyze参数发现报错改用 Rsdoctorrsdoctor/rspack-plugin7.swcrc 不再读取builtin:swc-loader在 2.0 中不再自动读.swcrc文件将 SWC 配置写入 loader 的options字段8CommonJS 配置文件失效旧的module.exports {...}在某些场景下与纯 ESM 包冲突配置文件改用.mjsexport default {}总结与延伸Rspack 2.0 的核心价值可以概括为三件事构建更快在官方万组件基准上缓存命中后的生产构建降至1.4sHMR118ms。依赖更轻dev-server 从 192 个依赖砍到1 个安装体积缩减90%。生态更现代纯 ESM、更合理的默认值、渐进式的 breaking change 管理。对于从 webpack 5 迁移的存量项目上述流程可以在一两个工时内完成主体工作。对于全新项目Rspack 团队更推荐使用上层的Rsbuild零配置构建工具基于 Rspack开箱即用# 新项目推荐用 Rsbuild内置 Rspack 2.0 npm create rsbuildlatest适用场景参考✅ 适合迁移React/Vue/Angular 的 webpack 5 项目、需要精细控制构建配置的中大型项目、CI 构建时间敏感的项目。⚠️ 暂不适合重度依赖 V8 原生 addon.node文件的项目、Node.js 20.19 的老旧环境、需要--analyze内置功能但未接入 Rsdoctor 的团队。延伸阅读Rspack 2.0 官方发布博客中文从 webpack 迁移到 Rspack 官方指南从 Rspack 1.x 升级到 2.0破坏性变更清单Rspack GitHub 仓库MIT 协议ByteDance Web Infra 团队维护Rsdoctor 构建分析工具Rsbuild 零配置构建工具

相关新闻

2026/8/10 10:34:44

RISC-V架构下Java性能优化:从JVM适配到数据中心实践

1. 项目概述:当RISC-V遇见Java,数据中心的算力新叙事 最近几年,如果你关注过芯片和基础软件,RISC-V和Java这两个词一定高频出现在你的视野里。一个是从开源指令集架构(ISA)的“潜力股”迅速成长为搅动行业格…

2026/8/10 11:44:47

SpringBoot+MySQL构建青少年心理健康教育系统实践

1. 项目概述 这个青少年心理健康教育培训系统小程序是我去年带队完成的一个校企合作项目,初衷是为解决校园心理辅导资源不足的问题。系统基于SpringBootMySQL技术栈开发,包含心理测评、在线咨询、教育资源库等核心模块,目前已在国内3所中学试…

2026/8/10 11:44:47

Kubernetes Pod沙箱创建超时问题诊断与优化

1. 问题现象与背景分析最近在Kubernetes集群部署容器时,不少同事都遇到了"Failed to create pod sandbox: ... DeadlineExceeded desc context deadline exceeded"这个经典错误。作为云原生架构师,我处理这类问题不下20次,今天就来…

2026/8/10 11:44:47

3D细胞活力检测技术:从传统方法到三维体系的跨越

简述 本文围绕三维细胞活力检测的技术需求,系统阐述3D细胞模型与二维培养的核心差异及其对检测方法提出的新挑战,分析基于ATP生物发光法在3D体系中的检测原理与技术优势。一、三维细胞培养的兴起与检测需求。三维细胞培养技术通过在体外重建细胞-细胞和细…

2026/8/10 11:44:47

荧光细胞活力检测技术:原理、优势与应用

简述 本文围绕荧光法检测细胞活力的技术原理,系统阐述基于活细胞蛋白酶活性和细胞膜完整性两种核心检测策略的分子基础,分析其相较于传统比色法的技术优势。一、细胞活力检测在生命科学研究中的核心地位。准确、快速地测定细胞活力和细胞数量是细胞生物学…

2026/8/10 11:39:47

AI应用数据架构演进:从Milvus+ES拼接难题到Lindorm一栈式方案

1. 项目概述:从“拼接”到“一栈式”的AI数据架构演进 最近和几个做AI应用开发的朋友聊天,发现一个挺普遍的现象:大家一提到向量检索,第一反应就是上Milvus;一提到传统的关键字、数值范围查询,就想到Elasti…

2026/8/9 0:01:56

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 5:09:58

当 LLM 遇见大文档:主流开源项目如何处理上下文超限

从 Agentic Loop 到 Repo Map,七种策略与六类陷阱引言:128K vs 10MB 的硬冲突 2026 年的 LLM 上下文窗口已达到 128K ~ 1M token(≈ 0.5MB ~ 4MB 文本),但 LLM 想要处理的真实数据规模远远超过这个量级:真实…

2026/8/10 0:04:00

# AI视频生成2026:多模态控制与工程化落地的技术跃迁

## AI视频生成2026:多模态控制与工程化落地的技术跃迁### 背景:从"抽卡"到"导演"的范式转移2024年,Sora的问世让AI视频生成首次进入公众视野,但彼时的技术被开发者戏称为"抽卡"——输入一段Prompt&…

2026/8/10 0:04:00

2026年五大AI编码CLI工具深度横评:从原理到实战选型指南

1. 项目概述:为什么我们需要对比AI编码CLI工具?如果你和我一样,每天有超过一半的时间是在终端里度过的,那么“效率”就是你最核心的追求。从最初的代码补全插件,到集成在IDE里的智能助手,再到如今能直接在命…

2026/8/10 11:20:30

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/10 11:20:30

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/9 15:24:19

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…