Rspack 提供两种方案支持 React
Rspack 利用 SWC 转换器处理 JSX/TSX。
添加 builtin:swc-loader
加载器支持 jsx
和 tsx
查看 内置 swc-loader 获取详细配置。
目前有两种方法在 Rspack 中启用 React 快速刷新
首先,需要安装 @rspack/plugin-react-refresh 来支持 React 快速刷新。
启用 React 快速刷新 功能主要涉及两个方面:代码注入和代码转换。
react-refresh
包注入一些代码,以及一些自定义运行时代码,所有这些都集成在 @rspack/plugin-react-refresh 插件中,可以通过此插件注入。与之前的方法相比,这种方法将 React 快速刷新代码注入逻辑与转换逻辑分离。代码注入逻辑由 @rspack/plugin-react-refresh 插件统一处理,而代码转换由加载器处理。这意味着此插件可以与 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-loader 中的示例。React 编译器是 React 19 中引入的一种实验性编译器,它可以自动优化 React 代码。
在开始使用 React 编译器之前,建议阅读 React 编译器文档,以了解 React 编译器的功能、当前状态和用法。
目前,React 编译器只支持 Babel 编译,这可能会减慢构建速度。
在 Rspack 中使用 React 编译器的步骤
react
和 react-dom
的版本升级到 19。babel-loader
babel.config.js
并配置插件可以参考以下示例项目
SVGR 是一种将 可缩放矢量图形 (SVG) 文件转换为 React 组件的通用工具。
SVGR 在 Rspack 中的使用方式与 Webpack 完全相同。
有关 SVGR 的详细用法,请参阅 SVGR 文档 - webpack。