Skip to content
该翻译已同步到了 的版本,其对应的 commit hash 是 d842b6f

配置

查看所有现有配置选项及其对应的默认值

ts
import VueRouter from 'vue-router/vite'

VueRouter({
  // 如何以及扫描哪些文件夹以查找文件
  routesFolder: [
    {
      src: 'src/pages',
      path: '',
      // 覆盖全局设置
      exclude: excluded => excluded,
      filePatterns: filePatterns => filePatterns,
      extensions: extensions => extensions,
    },
  ],

  // 哪些类型的文件应被视为页面
  extensions: ['.vue'],

  // 要包含哪些文件
  filePatterns: ['**/*'],

  // 要排除的文件
  exclude: [],

  // 生成的 d.ts 文件路径
  dts: './typed-router.d.ts',

  // 如何生成路由名称
  getRouteName: routeNode => getFileBasedRouteName(routeNode),

  // <route> 自定义块的默认语言
  routeBlockLang: 'json5',

  // 如何导入路由,也可以是字符串
  importMode: 'async',

  // 根目录
  root: process.cwd(),

  // 路径解析器的选项
  pathParser: {
    // `users.[id]` 应该被解析为 `users/:id` 吗?
    dotNesting: true,
  },

  // 单独修改路由
  async extendRoute(route) {
    // ...
  },

  // 在写入文件之前修改路由
  async beforeWriteFiles(rootRoute) {
    // ...
  },
})

SSR

可能需要在 vite.config.js 的开发模式下将 vue-router 标记为 noExternal

ts
import { defineConfig } from 'vite'
import Vue from '@vitejs/plugin-vue'
import VueRouter from 'vue-router/vite'

export default defineConfig(({ mode }) => ({
  ssr: {
    noExternal: mode === 'development' ? ['vue-router'] : [],
  },
  plugins: [VueRouter(), Vue()],
}))

Released under the MIT License.