README.md

April 20, 2025 ยท View on GitHub

logo

A rsbuild plugin generates pages for React applications.

NPM Version NPM Downloads Minizip Contributors License

๐Ÿ“ฆ Installation

npm install rsbuild-react-generate-pages -D

๐Ÿฆ„ Usage

Configuration rsbuild.config.ts

import { defineConfig } from '@rsbuild/core';
import { pluginReact } from '@rsbuild/plugin-react';
import { pluginReactGeneratePages} from 'rsbuild-react-generate-pages';

export default defineConfig({
  plugins: [pluginReactGeneratePages(), pluginReact()],
});

Overview

By default a page is a React Router lazy component exported from a .tsx, .jsx, .ts, .js file in the src/pages directory.

You can access the generated routes by importing the ~pages module in your application.

import ReactDOM from 'react-dom/client'
import { RouterProvider, createBrowserRouter } from 'react-router-dom'

import routes from '~pages'

ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
  <RouterProvider router={createBrowserRouter(routes)} />
)

Type

// env.d.ts
/// <reference types="rsbuild-react-generate-pages/client" />

Route Style

Example:

exmaple

# folder structure
src/pages/
โ”œโ”€โ”€ (dashboard)
โ”‚   โ”œโ”€โ”€ [...slug]
โ”‚   โ”‚   โ””โ”€โ”€ page.tsx
โ”‚   โ”œโ”€โ”€ posts
โ”‚   โ”‚   โ”œโ”€โ”€ [id]
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ page.tsx
โ”‚   โ”‚   โ””โ”€โ”€ page.tsx
โ”‚   โ”œโ”€โ”€ layout.tsx
โ”‚   โ””โ”€โ”€ page.tsx
โ”œโ”€โ”€ about
โ”‚   โ””โ”€โ”€ [[lang]]
โ”‚       โ””โ”€โ”€ page.tsx
โ”œโ”€โ”€ 404.tsx
โ”œโ”€โ”€ layout.tsx
โ””โ”€โ”€ page.tsx