
上篇文章中介绍了 unplugin-vue-router 和 vite-plugin-vue-layouts 两个十分受欢迎的库,今天我们继续分享另一篇上文提到的库:vite-plugin-pages
vite-plugin-pages 是一个专为 Vite 打造的文件系统路由生成插件,它可以根据 src/pages 下的文件结构自动创建 Vue Router 路由。同样可以搭配vite-plugin-vue-layouts 或 unplugin-vue-router 一起使用!

vite-plugin-pages
安装非常简单:
npm install vite-plugin-pages -D
然后在 vite.config.ts 中配置:
import Pages from 'vite-plugin-pages'
export default defineConfig({
plugins: [
vue(),
Pages({
dirs: 'src/pages',
extensions: ['vue', 'ts'],
importMode: 'async',
}),
]
})
vite-plugin-pages 读取指定目录(默认 src/pages)中的 .vue 文件,自动转为 Vue Router 的路由表,省去手动维护的烦恼。例如,页面结构如下:
src/pages/
├── index.vue → /
├── about.vue → /about
└── blog/
└── [id].vue → /blog/:id
它将会自动生成的路由配置大致是这样:
[
{ path: '/', component: () => import('src/pages/index.vue') },
{ path: '/about', component: () => import('src/pages/about.vue') },
{
path: '/blog/:id',
component: () => import('src/pages/blog/[id].vue')
}
]
vite-plugin-pages 本质是帮你生成了一个路由表,只需在项目中使用它即可:
// router.ts
import { createRouter, createWebHistory } from 'vue-router'
import routes from 'virtual:generated-pages'
export const router = createRouter({
history: createWebHistory(),
routes,
})
然后在 main.ts里这样:
import { createApp } from 'vue'
import App from './App.vue'
import { router } from './router'
createApp(App).use(router).mount('#app')
与 Vue Router 的集成也非常顺滑,只需要使用:
import routes from 'virtual:generated-pages'
即可获得类型安全的动态路由表。
另外,它还支持:
此外,它还能配合 vite-plugin-vue-layouts 构建布局系统,让你轻松实现多个页面共享相同布局。还支持多语言路径自动扩展、类型推导、热更新等高级特性,非常适合中大型 Vue 项目。
总之,vite-plugin-pages 是 Vue + Vite 项目中提升路由开发效率的不二之选。如果你还在手动写路由,不妨试试它,或许会让你爱不释手!
今天的分享就这些了,感谢大家的阅读,如果文章中存在错误的地方欢迎指正!