方案1 -- 重写 router.options.ts
- 项目根目录下创建 app/router.options.ts 然后就能重写啦

import { RouterOptions } from 'vue-router'
const REMOVE_NUXT_ROUTES = [
'/auth/user',
'/base/material',
]
const routesEx:RouterOptions['routes'] = [
{
path: '/auth/my-user.html',
name: 'auth-user',
component: () => import('../pages/auth/user.vue')
},
{
path: '/base/material.html',
name: 'base-material',
component: () => import('../pages/base/material.vue')
}
]
export default {
routes: (nuxtRoutes:RouterOptions['routes']) => {
return nuxtRoutes.filter(r => !REMOVE_NUXT_ROUTES.includes(r.path)).concat(routesEx)
}
}
方案2 -- nuxt.config.ts 中重写 hooks->'pages:extend'钩子事件

import { resolve } from 'path'
const REMOVE_NUXT_ROUTES = [
'/auth/user'
]
export default defineNuxtConfig({
... ...其他配置
hooks: {
'pages:extend': (pages) => {
const pagesToRemove = pages.filter(page => REMOVE_NUXT_ROUTES.includes(page.path))
for (const page of pagesToRemove) {
pages.splice(pages.indexOf(page), 1)
}
pages.push({
path: '/:name.html',
file: resolve(__dirname, 'pages/reports/[name].vue')
}, {
path: '/my-user',
file: resolve(__dirname, 'pages/user.vue')
})
}
}
})