In this document, you will learn how to build a React component library with Rslib. You can check out React related example projects in Examples.
You can use create-rslib
to create a project with Rslib + React. Just execute the following command:
Then select React
when prompted to "Select template".
To develop a React library, you need to set the target to "web"
in rslib.config.ts
. This is crucial because Rslib sets the target
to "node"
by default, which differs from the default target of Rsbuild.
To compile React (JSX and TSX), you need to register the Rsbuild React Plugin. The plugin will automatically add the necessary configuration for React builds.
For example, register in rslib.config.ts
:
'automatic' | 'classic' | 'preserve'
'automatic'
React introduced a new JSX transform in version 17. This new transform removes the need to import React
when using JSX.
By default, Rslib uses the new JSX transform, which is runtime: 'automatic'
. It requires at least React 16.14.0
or higher and the peerDependencies
should be specified as "react": ">=16.14.0"
.
To change the JSX transform, you can set the swcReactOptions option in @rsbuild/plugin-react
.
For example, to use the classic runtime:
When you need to keep native JSX in the build output, you can set the runtime to 'preserve'
to leave JSX syntax unchanged without transforming it, which is useful for subsequent processing by other bundlers.
When using runtime: 'preserve'
, you must set bundle: false
to enable bundleless mode to keep files unbundled.
To emit .jsx
files, you can configure the JS filename template through output.filename option:
string
'react'
When runtime
is set to 'automatic'
, you can specify the import path of the JSX transform through importSource
.
For example, when using Emotion, you can set importSource
to '@emotion/react'
:
Read Import SVGR for more details.