# vite-plugin-vue-comp-name-route **Repository Path**: li-hanming/vite-plugin-vue-comp-name-route ## Basic Information - **Project Name**: vite-plugin-vue-comp-name-route - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-23 - **Last Updated**: 2025-11-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # vite-plugin-vue-comp-name-route 一个 Vite 插件,用于根据 Vue 组件的目录结构动态生成 Vue Router 路由。 ## 作用 本插件通过扫描指定目录(默认为 `src/views`)下的 Vue 组件,自动生成对应的 Vue Router 路由数组。它从 Nuxt.js 的路由系统获得灵感,旨在简化路由配置。插件支持在开发和生产环境中使用,并允许通过 Vue 文件中的自定义块为路由添加元数据。 ## 安装 ```bash # 使用 pnpm pnpm add vite-plugin-vue-comp-name-route -D # 或使用 npm npm i vite-plugin-vue-comp-name-route -D ``` ## 使用方法 ### 1. 配置 Vite 插件 在您的 `vite.config.js` 或 `vite.config.ts` 中引入并配置插件: ```javascript // vite.config.js import componentFilterPlugin from 'vite-plugin-vue-comp-name-route' // 示例配置,您可以根据需要调整参数 export default defineConfig({ plugins: [ componentFilterPlugin({ // 配置选项(详见下方配置说明) include: "./src/views/**/*.vue", exclude: ["**/components/**", "**/component/**", "**/*component*/**"], showConsole: false, // 可选:开启控制台日志 // ... 其他配置 }) ] }) ``` ### 2. 在路由文件中使用 在您的 Vue Router 设置文件(例如 `src/router/index.js`)中,从插件生成的虚拟模块导入自动生成的路由: ```javascript // src/router/index.js import { createRouter, createWebHistory } from 'vue-router' // 从插件生成的虚拟模块导入路由 import { routeComponents } from 'virtual:filtered-route-components' const router = createRouter({ history: createWebHistory(), routes: [ // 将自动生成的路由展开到您的路由数组中 ...routeComponents, // 您也可以在此处继续添加静态路由 ] }) export default router ``` ### 3. 标记需要生成路由的组件 在您的 Vue 单文件组件中,通过在 ` ``` ## 配置选项 插件接受一个配置对象 `ComponentFilterConfig`,以下是所有可用选项: | 选项 | 类型 | 默认值 | 描述 | |------|------|--------|------| | **`include`** | `string` 或 `Array` | `"./src/views/**/*.vue"` | 定义插件要扫描的文件路径模式(Glob Pattern)。 | | **`exclude`** | `string` 或 `Array` | `["**/components/**", "**/component/**", "**/*component*/**"]` | 定义扫描中要排除的文件或文件夹路径模式。 | | **`filterFn`** | `Function` | `(config) => config && config.isRoute` | 自定义的组件过滤函数。默认识别 `