Rspack 提供两种方案来支持 React:
Rspack 使用 SWC 转译器支持 JSX 和 TSX。
你可以添加 builtin:swc-loader 以支持 .jsx
和 .tsx
文件:
关于配置项的更多信息请参考 builtin:swc-loader。
通过 @rspack/plugin-react-refresh 支持 React Fast Refresh 功能,首先需要安装相关依赖:
React Fast Refresh 功能的开启主要分为两部分:代码注入和代码转换
react-refresh
包中的一些代码,以及一些自定义的运行时代码,都已集成在 @rspack/plugin-react-refresh 插件中,可通过该插件注入。swc-loader
的 jsc.transform.react.refresh 或 babel-loader
的 react-refresh/babel 插件。这种实现方式将代码注入逻辑和转换逻辑解耦,代码注入逻辑统一通过 @rspack/plugin-react-refresh
插件完成,代码转换通过 loader 完成。这意味着该插件可以配合 builtin:swc-loader
、swc-loader
或 babel-loader
使用:
builtin:swc-loader
使用方式可参考:examples/react-refresh,使用 swc-loader
只需将 builtin:swc-loader
换为 swc-loader
即可。babel-loader
的使用方式可参考:examples/react-refresh-babel-loaderReact Compiler 是 React 19 引入的一个实验性编译器,它可以自动优化你的 React 代码。
在开始使用 React Compiler 之前,建议阅读 React Compiler 文档,以了解 React Compiler 的功能、当前状态和使用方法。
React Compiler 目前仅支持 Babel 编译,这会导致构建时间变慢。
在 Rspack 中使用 React Compiler 的步骤如下:
react
和 react-dom
版本到 19。babel-loader
:babel.config.js
并配置插件:你可以参考以下示例项目:
SVGR 是一个用于将 SVG 转换为 React 组件的工具,
在 Rspack 中使用 SVGR 的方式与 webpack 中完全一致:
对于 SVGR 的详细用法,请参考 SVGR 文档 - webpack。