Skip to main content

Webpack Plugin

The TanStack Router Webpack plugin provides integration with Webpack, enabling route generation and code splitting for your router application.

Installation

Basic Usage

Add the plugin to your webpack.config.js:
Or using ES modules:

Configuration

The plugin accepts the same configuration options as the Vite plugin:

Configuration Options

Route Generation

routesDirectory

  • Type: string
  • Default: './src/routes'
  • The directory where your route files are located.

generatedRouteTree

  • Type: string
  • Default: './src/routeTree.gen.ts'
  • The file where the generated route tree will be written.

routeFilePrefix

  • Type: string
  • Optional
  • A prefix to require for all route files.

routeFileIgnorePrefix

  • Type: string
  • Default: '-'
  • Files starting with this prefix will be ignored during route generation.

Code Splitting

codeSplittingOptions

  • Type: CodeSplittingOptions
  • Optional
  • Controls how routes are code-split.

TypeScript Options

disableTypes

  • Type: boolean
  • Default: false
  • Disable TypeScript type generation.

quoteStyle

  • Type: 'single' | 'double'
  • Default: 'single'
  • Quote style for generated code.

semicolons

  • Type: boolean
  • Default: false
  • Whether to include semicolons in generated code.

Separate Plugins

For more granular control, use individual plugins:

Route Generator Only

Code Splitter Only

How It Works

The Webpack plugin is built using unplugin, which provides a unified plugin interface across multiple build tools. The plugin:
  1. Watches your routes directory for changes
  2. Generates a typed route tree file
  3. Transforms route imports for code splitting
  4. Enables hot module replacement for route updates

Examples

Basic React Setup

With Code Splitting

Development vs Production

TypeScript Configuration

Ensure your tsconfig.json includes the generated route tree:

Troubleshooting

Plugin Not Running

Make sure the plugin is added to the plugins array in your Webpack config.

Route Tree Not Updating

In development mode, Webpack should watch for file changes automatically. If routes aren’t updating:
  1. Check that your routesDirectory is correct
  2. Verify that Webpack’s watch mode is enabled
  3. Try restarting the development server

Build Errors

If you encounter build errors:
  1. Ensure all dependencies are installed
  2. Check that your route files have valid exports
  3. Verify TypeScript configuration is correct

Migration from Other Plugins

If you’re migrating from the standalone @tanstack/router-vite-plugin, the Webpack plugin provides equivalent functionality with the same configuration API.