0.4.3 • Published 19 days ago

webpack-plugin-react-pages v0.4.3

Weekly downloads
-
License
MIT
Repository
github
Last release
19 days ago

webpack-plugin-react-pages

Webpack plugin port of vite-plugin-pages

Only support react, check playground for more details. Plugin use remix route style by default.

npm GitHub

install

pnpm i webpack-plugin-react-pages react-router react-router-dom

usage

const { WebpackPluginReactPages } = require('webpack-plugin-react-pages')

// in webpack.config.js
{
  plugins: [
    // ...
    new WebpackPluginReactPages(),
  ],
}

Then, import virutal:react-pages module in project

import React, { Suspense } from 'react'
import { BrowserRouter, useRoutes } from 'react-router-dom'

import routes from 'virtual:react-pages'

const Routes = () => {
  const element = useRoutes(routes)
  return element
}

const RouterViewer = () => {
  return (
    <BrowserRouter>
      <Suspense fallback={<div>loading</div>}>
        <Routes />
      </Suspense>
    </BrowserRouter>
  )
}

export default RouterViewer

options

Support follow options from vite-plugin-pages

  • resolver
  • dirs
  • exclude
  • importMode
  • routeStyle - remix by default
  • caseSensitive
  • routeBlockLang
  • extendRoute
  • onRoutesGenerated
  • onClientGenerated

options.rspack

  • type boolean

compatible with rspack

options.localModuleOptions

only worked when options.rspack is enabled.

options.namespace

plugin will register $page instance on compiler by default, custom namespace, register instance on compiler[namespace].$page

TypeScript

make virutal:react-pages type safe.

{
  "types": ["webpack-plugin-react-pages/shim"]
}

built-in resolvers

webpack-plugin-react-pages also built-in custom resolvers