---
title: how to generate the path like router config in vite + react + react-router project
date: 2025-01-14
author: KazooTTT
type: Post
status: Published
tags: [react, vite, react-router, vite-plugin-pages]
finished: true
published: true
category: frontend
slug: how-to-generate-the-path-like-router-config-in-vite-react-react-router-project
description:
toAstro: true
---
when i use react-router and vite, i want to config my router in the router.config.ts file and also generate some config for the target path dir. (like the nextjs router which is automatically generated based on the file structure)
config the router in the router.config.ts file is easy, but how to generate the path like router config for the target path dir? and combine the self config and automatically generated config together, finally use it in the react router?
we can split the problem into these parts:
1. generate the path like router config for the target path dir
2. combine the self config and automatically generated config together
3. use it in the react router
## 1. generate the path like router config for the target path dir
there is one package called [`vite-plugin-pages`](https://github.com/hannoeru/vite-plugin-pages), which can help us generate the path like router config for the target path dir.
how to use it?
step 1. in the vite + react + react-router project, install the `vite-plugin-pages` package.
``` shell
pnpm install vite-plugin-pages --save-dev
```
step 2. add the `vite-plugin-pages` plugin in the vite config file.
``` ts
import Pages from "vite-plugin-pages";
import { defineConfig } from "vite";
// https://vite.dev/config/
export default defineConfig({
plugins: [
// ...
Pages({
dirs: 'src/views',
})
// ...
],
});
```
the default dirs of the `vite-plugin-pages` plugin is `src/pages`, you can change it by the `dir` option.
we set it to `src/views` in the example.

it has some other options, you can see the [official docs](https://github.com/hannoeru/vite-plugin-pages).
step 3. get the path like router config for the target path dir.
``` tsx
import routes from "~react-pages";
function App() {
const routeElements = useRoutes(routes);
return (