# Rspack > Fast Rust-based bundler for the web with a modernized webpack API ## 指南 - [介绍](/zh/guide/start/introduction.md): Rspack 介绍指南,涵盖为什么要做 Rspack、当前状态及与其他构建工具的对比等核心内容,并提供实践建议。 - [快速上手](/zh/guide/start/quick-start.md): 作为一个底层打包工具,Rspack 拥有丰富的技术生态,包含多种框架、工具和解决方案。这些生态项目涵盖了从框架到开发工具的各个方面,能够满足不同场景下的开发需求,提供开箱即用的体验。 - [生态](/zh/guide/start/ecosystem.md): 了解 Rspack 生态中的 Rstack 工具链和社区集成。 - [AI](/zh/guide/start/ai.md): 为了帮助 AI 更全面地了解 Rspack 的功能、配置与最佳实践,从而在日常开发和问题排查过程中提供更准确的帮助,Rspack 提供了以下能力: - [插件](/zh/guide/features/plugin.md): 如果说 loader 是文件转换的核心,那么插件(plugin)则是 Rspack 整体构建流程的核心组成部分,Rspack 大部分的原生实现都依赖于 Rust 侧的插件系统。 - [Loader](/zh/guide/features/loader.md): Loader 是一种模块转换器,它将各种类型的模块转换为 Rspack 支持的类型。通过使用不同类型的 loader,你可以扩展 Rspack 来处理额外的模块类型,例如 JSX、Markdown、Sass、Less 等。 - [SWC loader](/zh/guide/features/builtin-swc-loader.md): SWC(Speedy Web Compiler)是基于 Rust 语言编写的高性能 JavaScript 和 TypeScript 转译和压缩工具。 - [Lightning CSS loader](/zh/guide/features/builtin-lightningcss-loader.md): Lightning CSS 是一个基于 Rust 编写的高性能 CSS 解析、转译和压缩工具。它支持将许多现代的 CSS 特性解析并转化为指定浏览器支持的语法,并提供更好的压缩比例。 - [开发服务器](/zh/guide/features/dev-server.md): @rspack/dev-server 为 Rspack CLI 提供本地开发服务器能力,包括 HMR 和代理等功能。 - [资源模块](/zh/guide/features/asset-module.md): Rspack 内置了对资源(如:图片、字体、视频等)的支持,这意味着你不需要任何的 Loader 来处理这些文件。 - [资源基础路径](/zh/guide/features/asset-base-path.md): Rspack 提供了 output.publicPath 选项,用于设置打包后的静态资源文件(如 JS、CSS、图片等)的 URL 路径前缀,它决定了你的应用在浏览器中如何加载这些资源。 - [模块解析](/zh/guide/features/module-resolution.md): 介绍 Rspack 的模块解析过程和基于 enhanced-resolve 的路径解析规则。 - [Web Workers](/zh/guide/features/web-workers.md): Rspack 提供了对 Web Workers 的内置支持,这意味着你不需要任何的 Loader 就可以直接使用 Web Workers。 - [ESM 产物](/zh/guide/features/esm.md): Rspack 支持使用 ESM 格式输出进行打包。构建应用时,Rspack 默认会生成基于 IIFE 格式代码的打包输出,而不是标准的 CommonJS 或 ESM 格式,你可以通过配置 output.module 来生成 ESM 格式的产物。 - [模块联邦](/zh/guide/advanced/module-federation.md): Module Federation 是一种 JavaScript 应用分治的架构模式(类似于服务端的微服务),它允许你在多个 JavaScript 应用程序(或微前端)之间共享代码和资源。 - [按需编译](/zh/guide/advanced/lazy-compilation.md): Lazy compilation 是一个提升开发阶段启动性能的有效手段,它采用按需编译模块的方式,而非在启动时编译全部模块。 - [Barrel 文件优化](/zh/guide/advanced/lazy-barrel.md): 了解 Rspack 如何通过跳过未使用的重导出模块构建来优化 barrel 文件。 - [模块分层](/zh/guide/advanced/layer.md): 了解如何使用模块分层组织依赖树,并按层应用处理规则、编译目标和代码分割。 - [TypeScript](/zh/guide/languages/typescript.md): 在 Rspack 中使用TypeScript的指南,涵盖环境配置、集成方式、调试要点、开发模式与常见问题处理。 - [CSS](/zh/guide/languages/css.md): 在 Rspack 中使用CSS的指南,涵盖环境配置、集成方式、调试要点、开发模式与常见问题处理,帮助快速定位相关信息。 - [HTML](/zh/guide/languages/html.md): 使用 Rspack 内置的 Rust 插件或兼容 html-webpack-plugin 行为的 JavaScript 插件生成 HTML。 - [JSON](/zh/guide/languages/json.md): 在 Rspack 中使用JSON的指南,涵盖环境配置、集成方式、调试要点、开发模式与常见问题处理,帮助快速定位相关信息。 - [React](/zh/guide/integrations/react.md): 在 Rspack 中使用React的指南,涵盖环境配置、集成方式、调试要点、开发模式与常见问题处理。 - [React 服务器组件](/zh/guide/integrations/rsc.md): 在 Rspack 中使用React 服务器组件的指南,涵盖环境配置、集成方式、调试要点、开发模式与常见问题处理。 - [Preact](/zh/guide/integrations/preact.md): 在 Rspack 中使用Preact的指南,涵盖环境配置、集成方式、调试要点、开发模式与常见问题处理。 - [Vue](/zh/guide/integrations/vue.md): 在 Rspack 中使用Vue的指南,涵盖环境配置、集成方式、调试要点、开发模式与常见问题处理,帮助快速定位相关信息。 - [Next.js](/zh/guide/integrations/next.md): 在 Rspack 中使用Next.js的指南,涵盖环境配置、集成方式、调试要点、开发模式与常见问题处理。 - [Node.js 应用](/zh/guide/integrations/node.md): 使用 Rspack 构建 Node.js 应用,涵盖 runtime target、external 依赖、开发脚本和 native addon。 - [NestJS](/zh/guide/integrations/nestjs.md): 在 Rspack 中使用 NestJS,涵盖环境配置、TypeScript decorators、开发阶段 HMR 和生产压缩。 - [Solid](/zh/guide/integrations/solid.md): 在 Rspack 中使用Solid的指南,涵盖环境配置、集成方式、调试要点、开发模式与常见问题处理。 - [Svelte](/zh/guide/integrations/svelte.md): 在 Rspack 中使用Svelte的指南,涵盖环境配置、集成方式、调试要点、开发模式与常见问题处理。 - [Rstest](/zh/guide/integrations/rstest.md): 在 Rspack 项目中集成 Rstest,编写单元测试和端到端测试。 - [生产优化](/zh/guide/optimization/production.md): 通过代码分割、Tree shaking 和代码压缩优化 Rspack 生产构建。 - [代码分割](/zh/guide/optimization/code-splitting.md): Rspack 支持代码分割特性,允许让你对代码进行分割,控制生成的资源体积和资源数量来获取资源加载性能的提升。 - [Tree shaking](/zh/guide/optimization/tree-shaking.md): Rspack 支持 tree shaking 功能,这是一个在 JavaScript 生态中广泛使用的术语,主要用于去除未被访问的代码,俗称“死代码”。 - [产物分析](/zh/guide/diagnostics/analysis.md): 使用 Rsdoctor 等工具分析 Rspack 构建产物、重复依赖和模块引用关系。 - [构建性能分析](/zh/guide/diagnostics/profile.md): 分析 Rspack 构建性能、定位常见瓶颈,并调整工作线程配置。 - [使用 Rsdoctor](/zh/guide/diagnostics/use-rsdoctor.md): 使用 Rsdoctor 分析 Rspack 的构建产物和构建性能。 - [从 v1 升级到 v2](/zh/guide/migration/rspack_1.x.md): 如果你在使用支持 Skills 的 Coding Agent,可以安装 rspack-v2-upgrade 技能来辅助完成 v1 到 v2 的升级流程。 - [从 0.x 升级到 v1](/zh/guide/migration/rspack_0.x.md): 在 Rspack 0.x 中,experiments.css 默认开启,这意味着以 .css 结尾的文件会默认被视为 type: 'css/auto',不需要手动引入其他 loader 来处理 CSS 文件。 - [迁移 webpack](/zh/guide/migration/webpack.md): Rspack 的配置是基于 webpack 的设计实现的,以此你能够非常轻松地将项目从 webpack 迁移至 Rspack。 - [迁移 Create React App](/zh/guide/migration/cra.md): 由于 Create React App(CRA)内置了丰富的工程能力,如果使用 Rspack CLI 手动搭建一个具有同等能力的配置会比较困难。 - [迁移 Storybook](/zh/guide/migration/storybook.md): 如果你正在使用 Storybook 的 React / Vue 框架并且使用 webpack 5 构建,那么可以使用 storybook-rsbuild 替换 @storybook/react-webpack5 构建,storybook-rsbuild 基于 Rsbuild 实现,以 Rspack... - [品牌指南](/zh/misc/branding/guideline.md): Rspack 在独立使用的情况下都应该写作 Rspack,而不是 rspack 或者 RSPACK,但在命令行或者包名中可以使用小写,如 @rspack/cli。 ## 配置 - [配置 Rspack](/zh/config/index.md): Rspack 配置总览,涵盖核心选项、产物行为、构建优化、开发调试、工具链设置与常见配置入口,帮助快速定位相关信息。 - [文件名占位符](/zh/config/filename-placeholders.md): Rspack 的文件名相关配置支持占位符,这样可以在构建过程中根据不同的上下文动态生成输出的文件名,从而更好地区分资源并提升缓存效果。 - [Cache](/zh/config/cache.md): 配置 Rspack 的缓存策略,包括禁用缓存、内存缓存和持久化缓存。 - [Context](/zh/config/context.md): context 是一个绝对路径,它被用作为 Rspack 配置中相对路径的基础路径,比如 entry 和 output 等配置中包含的相对路径。 - [DevServer](/zh/config/dev-server.md): 配置 @rspack/dev-server 的本地开发和预览行为。 - [Devtool](/zh/config/devtool.md): 了解如何为开发和生产环境配置 source map,以及每个 devtool 修饰符的作用。 - [Entry](/zh/config/entry.md): Rspack Entry 配置项参考,涵盖单入口、多入口、动态入口函数以及入口描述对象的配置方式与行为。 - [Experiments](/zh/config/experiments.md): 在 minor release 中,Rspack 可能对这些实验性特性的 public API 做一些调整,并在更新日志中对这些变动进行详细的说明。 - [Extends](/zh/config/extends.md): 如果你在使用 JavaScript API,或是其他基于 Rspack 的工具,extends 将不会生效,请使用 rspack-merge 代替。 - [Externals](/zh/config/externals.md): 外部依赖(externals)用于指定哪些模块不需要被 Rspack 打包,而是直接使用外部环境中提供的实现。 - [Incremental](/zh/config/incremental.md): 控制是否在开发期重建和 HMR 中复用未受影响的中间结果。 - [InfrastructureLogging](/zh/config/infrastructure-logging.md): 指定输出(如特定的插件或 loader)的调试信息。类似 stats.loggingDebug 选项,但适用于基础架构。 - [LazyCompilation](/zh/config/lazy-compilation.md): 懒编译(Lazy Compilation)是一种优化技术,可以延迟模块的编译,直到它们被实际请求时才进行构建。 - [Mode](/zh/config/mode.md): Rspack Mode 配置项参考,涵盖作用、可选值、默认行为、常见用法、限制条件与配置示例,帮助快速定位相关信息。 - [Module](/zh/config/module.md): defaultRules 用于配置 Rspack 在内部默认启用的模块解析与处理规则。这些规则是自动生效的,用于确保常见资源类型(如 JavaScript、JSON、CSS、Wasm 等)能够被正常解析和打包。 - [Module generator](/zh/config/module-generator.md): 按模块类型配置 generator 选项。 - [Module parser](/zh/config/module-parser.md): 按模块类型配置 parser 选项。 - [Module rules](/zh/config/module-rules.md): 它是一个规则数组。每条规则都会在模块被解析和创建时,与模块的信息进行匹配,例如文件路径、文件类型或查询参数。 - [Node](/zh/config/node.md): 控制 Rspack 在为非 Node 环境打包时,是否需要为 Node.js 的 global 对象提供 polyfill。 - [Optimization](/zh/config/optimization.md): 通过 optimization 来自定义优化配置 - [Output](/zh/config/output.md): 顶级的 output 包含一组选项,指导 Rspack 如何以及在哪里输出 bundles、assets,以及使用 Rspack 打包或加载的任何其他内容。 - [Performance](/zh/config/performance.md): performance 用于配置 Rspack 的性能提示机制,帮助你在构建阶段识别体积过大的输出结果。 - [Plugins](/zh/config/plugins.md): 例如,DefinePlugin 允许你在编译时将代码中的变量替换为其他值或表达式。你可以通过 rspack.DefinePlugin 来访问它,并使用 new 来创建插件实例: - [Resolve](/zh/config/resolve.md): 当你使用 resolve.alias 将包名导入(例如 import 'lib')重定向到 monorepo 或 nodemodules 中的具体目录时,模块的解析方式会发生变化: - [ResolveLoader](/zh/config/resolve-loader.md): 比如,你在进行 loader 的开发,但又希望能在 loader 的使用示例中以用户视角展示使用方式,你可以这样写: - [Stats](/zh/config/stats.md): 开启 stats.all 会导致大量的 Rust 与 JavaScript 的数据传输,这将显著提高 Stats 生成耗时,请谨慎使用。 - [Target](/zh/config/target.md): 配置 Rspack 输出代码的运行环境与 ECMAScript 兼容范围。 - [Watch](/zh/config/watch.md): 开启监听模式,使 Rspack 在第一次构建完后不会退出,而是继续监听文件变更,并在变更时触发重新编译。 - [其他配置](/zh/config/other-options.md): Rspack 其他配置参考,涵盖 amd、bail、dependencies 与 ignoreWarnings 等补充配置项。 - [废弃选项](/zh/config/deprecated-options.md): 此选项在 Rspack 2.0 中已弃用。现在手动添加 CSS type 将模块标记为 CSS 模块。 ## 插件 - [Rspack 插件](/zh/plugins/index.md): 按功能浏览所有 Rspack 插件文档,并通过简短介绍快速找到对应的参考页面。 - [BannerPlugin](/zh/plugins/banner-plugin.md): 使用 Rspack BannerPlugin 在生成的 chunk 文件开头或结尾插入指定内容。 - [CopyRspackPlugin](/zh/plugins/copy-rspack-plugin.md): Rspack CopyRspackPlugin 插件参考,说明文件复制、目录拷贝、glob 匹配与目标路径配置方式。 - [CssExtractRspackPlugin](/zh/plugins/css-extract-rspack-plugin.md): 将 css-loader 处理的 CSS 提取为独立的 CSS 文件 - [HtmlRspackPlugin](/zh/plugins/html-rspack-plugin.md): 生成 HTML 文件,并注入入口脚本、样式和配置的其他标签 - [SubresourceIntegrityPlugin](/zh/plugins/subresource-integrity-plugin.md): rspack.SubresourceIntegrityPlugin 是一个用于在 Rspack 中启用子资源完整性的插件。 - [CompactHashedChunkIdsPlugin](/zh/plugins/compact-hashed-chunk-ids-plugin.md): CompactHashedChunkIdsPlugin 使用稳定小写字母数字 hash 的最短可用前缀生成紧凑 Chunk id,兼顾长期缓存、产物体积和运行时索引性能 - [CompactHashedModuleIdsPlugin](/zh/plugins/compact-hashed-module-ids-plugin.md): CompactHashedModuleIdsPlugin 使用稳定字母数字 hash 的最短可用前缀生成紧凑模块 id,兼顾长期缓存、产物体积和运行时索引性能 - [CssChunkingPlugin](/zh/plugins/css-chunking-plugin.md): CssChunkingPlugin 是一个专为 CSS 代码分割设计的插件,它能够确保样式的加载顺序与源代码中的导入顺序保持一致,避免因 CSS 加载顺序错误而导致的 UI 问题。 - [DeterministicModuleIdsPlugin](/zh/plugins/deterministic-module-ids-plugin.md): 为模块分配较短且在多次编译间保持稳定的数字 id - [DllPlugin](/zh/plugins/dll-plugin.md): Dll 插件用于在一个单独的 rspack 配置中生成一个 dll 库,DllReference 插件通过该插件生成的 manifest.json 能够将依赖映射到对应的位置上。 - [DllReferencePlugin](/zh/plugins/dll-reference-plugin.md): Rspack DllReferencePlugin 插件参考,说明用途、可用选项、典型场景、使用方式与常见集成方式。 - [LightningCssMinimizerRspackPlugin](/zh/plugins/lightning-css-minimizer-rspack-plugin.md): 此插件使用 lightningcss 来压缩 CSS 产物。参见 optimization.minimizer。 - [LimitChunkCountPlugin](/zh/plugins/limit-chunk-count-plugin.md): 在编写代码时,你可能已经添加了许多代码分割点以按需加载内容。在编译后,你可能会注意到有些 chunk 太小——造成了较大的 HTTP 开销。 - [RuntimeChunkPlugin](/zh/plugins/runtime-chunk-plugin.md): 创建独立的 runtime chunk,并控制其命名方式。 - [SplitChunksPlugin](/zh/plugins/split-chunks-plugin.md): SplitChunksPlugin 是一个内置插件,用于将代码拆分成多个 chunk,以优化应用的加载性能,实现更好的缓存策略和并行加载效果。 - [SwcJsMinimizerRspackPlugin](/zh/plugins/swc-js-minimizer-rspack-plugin.md): 当设置了 optimization.minimizer 时,默认的压缩器会被禁用,因此我们需要同时添加 LightningCssMinimizerRspackPlugin 来压缩 CSS 文件。 - [ContextReplacementPlugin](/zh/plugins/context-replacement-plugin.md): 限制或重定向动态 require 和 import() 上下文可访问的模块。 - [DefinePlugin](/zh/plugins/define-plugin.md): DefinePlugin 在编译时将代码中的变量替换为其他值或表达式。这对于允许开发构建和生产构建之间的不同行为非常有用。 - [EntryPlugin](/zh/plugins/entry-plugin.md): 在编译时添加一个入口 chunk。该 chunk 的名称为 options.name,仅包含一个模块(以及依赖项)。 - [EnvironmentPlugin](/zh/plugins/environment-plugin.md): 使用 EnvironmentPlugin 将指定的 process.env 变量注入打包代码,并为其设置可选的默认值。 - [ExternalsPlugin](/zh/plugins/externals-plugin.md): 允许你指定外部依赖项,这些依赖项将不打包到输出文件中。这对于已经在全局范围内可用或通过其他方式另外管理的库非常有用。 - [IgnorePlugin](/zh/plugins/ignore-plugin.md): 忽略指定的导入,使对应模块不进入构建产物。 - [JavascriptModulesPlugin](/zh/plugins/javascript-modules-plugin.md): 处理 JavaScript 的打包,一般用于获取 JavascriptModulesPlugin 的相关钩子: - [ModuleFederationPlugin](/zh/plugins/module-federation-plugin.md): ModuleFederationPlugin 用于在 Rspack 中启用模块联邦(Module Federation)能力。 - [ModuleFederationPluginV1](/zh/plugins/module-federation-plugin-v1.md): 该插件对应 Module Federation v1.0,即 webpack 中的 ModuleFederationPlugin。 - [NormalModuleReplacementPlugin](/zh/plugins/normal-module-replacement-plugin.md): NormalModuleReplacementPlugin 可以帮你把 resourceRegExp 匹配的 import/require 等模块请求(后面简称 请求 或 request)替换为 newResource。 - [ProvidePlugin](/zh/plugins/provide-plugin.md): 每当在模块中遇到 identifier 作为自由变量时,相应的模块会自动加载,且 identifier 会被填充为已加载模块的输出(或者是属性,以支持具名导出)。 - [VirtualModulesPlugin](/zh/plugins/virtual-modules-plugin.md): VirtualModulesPlugin 允许你在内存中创建、修改和删除文件,Rspack 会将这些虚拟文件视为真实存在于文件系统中的文件进行处理。 - [CaseSensitivePlugin](/zh/plugins/case-sensitive-plugin.md): 在不同操作系统中,文件系统对大小写的处理方式可能不同。当代码中引用仅大小写不同的模块名称时,可能会导致跨系统编译时出现意外的错误,这个插件用于预防这种情况。 - [CircularCheckRspackPlugin](/zh/plugins/circular-check-rspack-plugin.md): 报告从 Rspack 模块图中收集到的循环导入依赖 - [EvalSourceMapDevToolPlugin](/zh/plugins/eval-source-map-dev-tool-plugin.md): 这个插件可以更细致地控制源映射文件(source map)的生成。在特定的 devtool 配置选项设置下,它也会被自动启用。 - [HotModuleReplacementPlugin](/zh/plugins/hot-module-replacement-plugin.md): 注意 HMR 不能被用于生产构建,因此你需要通过 process.env.NODEENV 来判断当前是否是开发环境。 - [NoEmitOnErrorsPlugin](/zh/plugins/no-emit-on-errors-plugin.md): 当编译中存在错误时,阻止 Rspack 输出构建产物。 - [ProgressPlugin](/zh/plugins/progress-plugin.md): Rspack ProgressPlugin 插件参考,说明用途、可用选项、典型场景、使用方式与常见集成方式。 - [SourceMapDevToolPlugin](/zh/plugins/source-map-dev-tool-plugin.md): 本插件实现了对 source map 生成内容进行更细粒度的控制。它也可以根据 devtool 配置选项的某些设置来自动启用。 - [底层插件](/zh/plugins/low-level-plugins.md): 介绍 Rspack 对外暴露、用于目标预设、运行时模板、子编译器和上层插件的底层插件。 - [社区插件兼容性](/zh/plugins/community-plugin-compatibility.md): 查看 Rspack 对常见 webpack 社区插件的兼容状态。 - [webpack 内置插件兼容性](/zh/plugins/webpack-built-in-plugin-support.md): 查看 Rspack 对 webpack 内置插件 API 和部分内部插件的兼容状态。 - [CircularDependencyRspackPlugin](/zh/plugins/circular-dependency-rspack-plugin.md): 检测运行时模块之间的循环导入依赖关系。当运行时调用的函数使用时,循环引用通常不表示存在错误,但当在初始化期间使用导入时,可能会导致错误或错误。 ## API - [Rspack APIs](/zh/api/index.md): Rspack API 总览,涵盖 CLI、JavaScript API、Loader API、Plugin API 与运行时能力等核心内容。 - [命令行工具](/zh/api/cli.md): @rspack/cli 是 Rspack 的命令行工具,它提供了多种命令来简化 Rspack 的使用。 - [模块方法](/zh/api/runtime-api/module-methods.md): 当使用 Rspack 打包应用程序时,你可以选择多种模块语法风格,包括 ES modules 和 CommonJS。 - [模块变量](/zh/api/runtime-api/module-variables.md): 本节涵盖了使用 Rspack 编译代码时所有可用的变量。模块将能够通过 module 和其他变量访问来自编译过程的特定数据。 - [模块热替换](/zh/api/runtime-api/hmr.md): 如果你通过 HotModuleReplacementPlugin 启用了模块热替换,它的接口将暴露在 module.hot 和 import.meta.webpackHot 对象下。 - [JavaScript API](/zh/api/javascript-api/index.md): Rspack JavaScript API 总览,涵盖编译器创建、监听模式、统计信息访问与编程式构建流程。 - [JavaScript API 架构](/zh/api/javascript-api/architecture.md): Rspack 通过 @rspack/core 提供兼容 webpack 的 JavaScript API,而大部分编译工作运行在 Rust 中,两层之间通过 Node-API binding 通信。 - [Compiler](/zh/api/javascript-api/compiler.md): Compiler 是 Rspack 内部的核心对象,当你调用 Rspack 的 JavaScript API 或 CLI 时,都会创建一个 Compiler 实例。 - [Compilation](/zh/api/javascript-api/compilation.md): Compilation 对象是 Rspack 构建过程中的核心对象之一,每当 Rspack 执行构建时(包括监听模式下的重新构建),都会创建一个新的 Compilation 实例,它包含了当前构建的所有信息。 - [Stats](/zh/api/javascript-api/stats.md): Stats 对象会作为 rspack() 回调函数的第二个参数,可以通过它获取到一次 Compilation 执行过程中的信息,包括: - [Stats JSON](/zh/api/javascript-api/stats-json.md): 使用 Rspack 编译时,可通过如下命令生成统计模块信息的 JSON 文件,以分析应用的模块依赖关系: - [Logger](/zh/api/javascript-api/logger.md): Rspack logger 可以在 loaders 和 plugins 中使用。生成的日志将作为 Stats 的一部分并且可以在 rspack configuration 中配置。 - [Cache](/zh/api/javascript-api/cache.md): 在编写 Rspack 插件时,可通过 compiler.getCache(name: string) 或 compilation.getCache(name: string) 获取缓存对象,以在构建流程中共享数据。 - [SWC API](/zh/api/javascript-api/swc.md): Rspack 底层使用 SWC 来转换和压缩 JavaScript 代码,并通过 rspack.experiments.swc 实验性地开放一部分 SWC JavaScript API。 - [Resolver API](/zh/api/javascript-api/resolver.md): Rspack 使用 Rust 编写的更高性能的 rspack-resolver 来代替 webpack 中的 enhanced-resolve,并通过 rspack.experiments.resolver 实验性地重导出了这些 API。 - [Browser API](/zh/api/javascript-api/browser.md): @rspack/browser 是专为浏览器环境打造的 Rspack 版本,无需依赖 WebContainers 或特定平台。 - [总览](/zh/api/loader-api/index.md): Rspack Loader API 总览,涵盖 Loader Context、内联语法、自定义能力与 Loader 编写方式。 - [编写 Loader](/zh/api/loader-api/writing-loaders.md): Rspack 支持多种 loader 类型,包括同步 loader、异步 loader、ESM loader、Raw loader 和 Pitching loader 等。 - [Loader 上下文](/zh/api/loader-api/context.md): Loader 上下文表示 loader 内部可用的属性,这些属性在 loader 中通过 this 属性进行访问。 - [内联 loader](/zh/api/loader-api/inline.md): 可以在 import 语句中指定 loader,或者任何同等的 "导入"方法。用 ! 将 loader 从资源中分离出来。 - [内联 matchResource](/zh/api/loader-api/inline-match-resource.md): Inline matchResource 允许你在加载资源时动态改变匹配规则。你可以通过在模块标识符前添加 !=! 前缀来为该模块标识符设置 matchResource。 - [总览](/zh/api/plugin-api/index.md): Rspack 插件 API 总览,介绍钩子分类、兼容性现状、调用时机以及面向 webpack 生态的兼容写法。 - [Compiler 钩子](/zh/api/plugin-api/compiler-hooks.md): Compiler hooks 允许 Rspack 插件在特定阶段介入构建流程。它们代表了从初始化到资源输出的各个生命周期阶段。 - [Compilation 钩子](/zh/api/plugin-api/compilation-hooks.md): Compilation 钩子是 Rspack 插件的主要扩展方式,为开发者提供了介入构建流程各阶段的能力。 - [NormalModuleFactory 钩子](/zh/api/plugin-api/normal-module-factory-hooks.md): NormalModuleFactory 被 Compiler 用来生成模块(NormalModule)。 - [ContextModuleFactory 钩子](/zh/api/plugin-api/context-module-factory-hooks.md): Compiler 使用 ContextModuleFactory 模块从 require.context API 生成依赖关系。 - [JavascriptModulesPlugin 钩子](/zh/api/plugin-api/javascript-modules-plugin-hooks.md): Rspack JavascriptModulesPlugin 钩子 插件 API 参考,涵盖生命周期钩子、参数、能力边界与编译集成点。 - [Stats 钩子](/zh/api/plugin-api/stats-hooks.md): StatsFactory.hooks.extract 是一个 HookMap,在生成指定的 stats 项目时触发。 - [RuntimePlugin 钩子](/zh/api/plugin-api/runtime-plugin-hooks.md): RuntimePlugin 用于生成运行时 Rspack 启动所需的代码。它提供以下生命周期钩子,可用于修改这些运行时代码。 - [ExternalModule 钩子](/zh/api/plugin-api/external-module-hooks.md): ExternalModule 钩子用于控制外部模块如何分配到 chunk。 ## 博客 - [Rspack 博客](/zh/blog/index.md): Rspack 博客归档,汇总版本发布、生态更新、团队动态与技术实践文章,便于按时间线浏览与查阅,帮助快速定位相关信息。 - [Rspack 2.2 发布公告](/zh/blog/announcing-2-2.md): Rspack 2.2 正式发布,带来性能提升与 HMR 优化、更短的模块 ID、import.meta 改进和更多平台支持。 - [Rspack 2.1 发布公告](/zh/blog/announcing-2-1.md): Rspack 2.1 正式发布,重点带来 React Compiler Rust 支持、import.meta.glob、Source Phase Imports、持久化缓存清理,以及多项性能和产物优化。 - [Rspack 2.0 正式发布](/zh/blog/announcing-2-0.md): Rspack 2.0 正式发布,在保持与 webpack 生态兼容的同时,引入了更现代的默认行为、API 设计和构建产物。 - [Rspack 1.7 发布公告](/zh/blog/announcing-1-7.md): Rspack 1.7 版本发布,提升了 SWC Wasm 插件兼容性,支持 Import Bytes 资源导入,并将多项实验特性稳定化。 - [Rspack 1.6 发布公告](/zh/blog/announcing-1-6.md): Rspack 1.6 版本发布,带来了更好的 ESM 输出、增强 tree shaking 能力、支持 defer import 语法、稳定 layers 特性,以及默认启用 barrel 文件优化。 - [Rspack 1.5 发布公告](/zh/blog/announcing-1-5.md): Rspack 1.5 版本发布,支持 Barrel 文件优化、常量内联优化,新增了内置文件系统监听器、虚拟模块插件和 Rust 扩展机制,并不再支持 Node 16。 - [Rspack 1.4 发布公告](/zh/blog/announcing-1-4.md): Rspack 1.4 版本发布,支持在浏览器中运行、默认启用增量构建,同时集成更快的 SWC、生成更小的构建产物,并引入了 `CssChunkingPlugin` 等新功能。 - [Rspack 加入 Next.js 生态](/zh/blog/rspack-next-partner.md): 今天,我们很高兴地推出 next-rspack,这是一个社区驱动的插件,让 Next.js 能够直接使用 Rspack 作为打包工具。 - [Rspack 1.3 发布公告](/zh/blog/announcing-1-3.md): Rspack 1.3 版本发布,支持检测循环引用、构建 HTTP 模块和引用 AMD 模块,引入全新的 lazy compilation 中间件,以及优化了代码分割性能、产物体积和内存占用。 - [Rspack 1.2 发布公告](/zh/blog/announcing-1-2.md): Rspack 1.2 版本发布,引入实验性的持久化缓存、更快的代码分割算法以及 Yarn PnP 支持等功能。 - [Rspack 1.1 发布公告](/zh/blog/announcing-1-1.md): Rspack 和 Rsbuild 1.1 版本发布,显著提升了冷启动和增量构建的性能,同时改进了内置的 HTML 插件和配置选项的类型提示。 - [Rspack 1.0 发布公告](/zh/blog/announcing-1-0.md): 今天,Rspack 终于到达了一个崭新的阶段 —— 1.0。这意味着 Rspack 已经达到生产稳定,覆盖了 webpack 绝大多数的 API 和功能,并已经做好支持更多用户的准备。 - [Rspack 1.0 alpha 发布公告](/zh/blog/announcing-1-0-alpha.md): Rspack 1.0 alpha 现已发布至 npm!在发布 Rspack 1.0 稳定版之前,我们将进行 1~2 个月的测试,以改进 1.0 版本的 API 稳定性和可靠性,并验证对下游项目的影响。 - [Rspack 0.7 发布公告](/zh/blog/announcing-0-7.md): Rspack 0.7 版本发布,支持 lazy compilation,能够显著提升大型应用的 dev startup 性能。同时引入了全新的 css-module-lexer,使 CSS 打包速度提升 4 倍。 - [Rspack 0.6 发布公告](/zh/blog/announcing-0-6.md): Rspack 0.6 版本发布,内置支持 mini-css-extract-plugin,默认开启新版 tree shaking。 - [Rspack 0.5 发布公告](/zh/blog/announcing-0-5.md): Rspack 0.5 版本发布,支持模块联邦,移除默认的 SWC 转换。 - [Rspack 支持模块联邦](/zh/blog/module-federation-added-to-rspack.md): 最新的 Rspack 0.5.0 引入了备受期待的模块联邦功能,本文对其进行了详细介绍。 - [Rspack 0.4 发布公告](/zh/blog/announcing-0-4.md): Rspack 0.4 版本发布,移除对一些内置功能的支持。 - [Rspack 0.3 发布公告](/zh/blog/announcing-0-3.md): Rspack 0.3 版本发布,新增 web workers、builtin:swc-loader 支持。 - [Rspack 0.2 发布公告](/zh/blog/announcing-0-2.md): Rspack 0.2 版本发布,新增了诸多功能,如 realContentHash、DataURI、ESM format 的支持等。 - [Rspack 正式发布了](/zh/blog/announcing-0-1.md): Rspack 正式发布了! ## Others - [Builtin 插件](/zh/contribute/architecture/builtin-plugin.md): Builtin 插件介绍 - [Rspack loader](/zh/contribute/architecture/rspack-loader.md): 旧的架构是一个非常简单的版本,仅支持正常阶段的 loader。不考虑 pitch 的 loader。 - [Building](/zh/contribute/development/building.md): Rspack 贡献指南中的Building章节,涵盖安装 Node.js 依赖和构建 Rspack等核心内容,并说明本地准备要求。 - [Debugging](/zh/contribute/development/debugging.md): 其他工具集成的一般是 Rspack 的 release 版本,其中并不包含调试信息,这时候需要使用对应的含有debug 的版本进行override替换,方可调试。 - [准备工作](/zh/contribute/development/prerequisites.md): Rspack 贡献指南中的准备工作章节,涵盖安装 Rust和安装 Node.js等核心内容,并说明本地准备要求。 - [Profiling](/zh/contribute/development/profiling.md): 性能分析应基于包含调试信息的发布版本进行。这种方法既能确保性能结果的准确性,又能提供充足的调试信息用于分析。 - [项目结构](/zh/contribute/development/project.md): Rspack 项目结构指南,介绍 monorepo 中的 Rust crates、JavaScript packages、测试目录与核心组件分布。 - [Releasing](/zh/contribute/development/releasing.md): 你可以在 @rspack/core 和 @rspack/cli 的 npm 版本页面查看所有已发布的版本。 - [Testing](/zh/contribute/development/testing.md): 由于 Rspack 使用 Rust + TypeScript 代码混合编写,因此会针对两者使用不同的测试方案。 - [Tracing](/zh/contribute/development/tracing.md): 介绍 Rspack 中 Tracing 的使用方式 - [贡献指南](/zh/contribute/index.md): Rspack 贡献文档总览,涵盖项目架构、开发流程、测试、调试、发布步骤与协作规范,帮助快速定位相关信息。 - [SWC 插件版本不匹配](/zh/errors/swc-plugin-version.md): SWC 的插件仍然是一个实验性功能,目前 SWC 的 Wasm 插件是不向后兼容的,SWC 插件的版本与 Rspack 依赖的 swccore 版本存在强耦合关系。 - [版权声明](/zh/misc/branding/license.md): 除非另有说明,本站文档内容源自 Rspack website 贡献者,遵循 CC BY 4.0 许可协议。 - [常见问题](/zh/misc/faq.md): 我们和 webpack 团队确立了合作关系,Rspack 是 webpack 通过 Rust 进行性能优化的一个尝试,并已经取得了良好进展。 - [术语表](/zh/misc/glossary.md): 收录 Rspack 的常用术语及定义。 - [功能演进与废弃](/zh/misc/planning/future.md): Rspack 在 0.y.z 的阶段仅可能会在 minor(y)版本升级的时候包含破坏性更新,在 patch(z) 版本升级时则保证功能的向下兼容性。 - [路线图](/zh/misc/planning/roadmap.md): 我们正在开发 Rspack 2.0 与 Rsbuild 2.0,这一版本的重点在于改进 API 和内部架构、提升性能,进一步拥抱现代 Web 标准,并提供更优秀的开发体验。 - [核心团队](/zh/misc/team/core-team.md): Rstack 的开发由字节跳动的 web infra 团队主导,并与社区贡献者共同驱动多个核心项目的开发,包括 Rspack、Rsbuild、Rspress、Rsdoctor、Rslib、Rstest 和 Rslint。 - [荣誉成员](/zh/misc/team/emeriti.md): Rspack 荣誉成员 概览,涵盖成员等核心内容,并提供补充背景信息,帮助快速定位相关信息适合作为查阅入口。 - [加入我们](/zh/misc/team/join-us.md): 我们是字节跳动 Web Infra 团队,服务于整个公司的 Web 生态,我们的愿景是 打造世界一流的 Web 生态技术体系,为字节产品提供极致的用户体验和开发体验。