# 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 单文件组件中,通过在 `
About Page
```
## 配置选项
插件接受一个配置对象 `ComponentFilterConfig`,以下是所有可用选项:
| 选项 | 类型 | 默认值 | 描述 |
|------|------|--------|------|
| **`include`** | `string` 或 `Array` | `"./src/views/**/*.vue"` | 定义插件要扫描的文件路径模式(Glob Pattern)。 |
| **`exclude`** | `string` 或 `Array` | `["**/components/**", "**/component/**", "**/*component*/**"]` | 定义扫描中要排除的文件或文件夹路径模式。 |
| **`filterFn`** | `Function` | `(config) => config && config.isRoute` | 自定义的组件过滤函数。默认识别 `