feat: migrate from unplugin-vue-router to vue-router v5 (#563)

* feat: migrate from unplugin-vue-router to vue-router v5

* chore: update lock

* fix: resolve CI failures for vue-router v5 migration

- Fix ESLint import order in vite.config.ts
- Fix readonly routes type mismatch in src/main.ts by spreading routes array
- Upgrade vite to v7, vite-ssg to v28, beasties to v0.4, and other deps
- Update CI node matrix from [18.x, 20.x] to [20.x, 22.x]

* chore: upgrade vite-plugin-pwa and vitest

* fix: bump Node.js version to 22 for Iterator helpers support

vue-router v5 uses Iterator helpers (e.g. `seen.values().filter()`)
which require Node.js >= 22. Bump NODE_VERSION in netlify.toml from
20 to 22 to fix the Netlify build failure.
This commit is contained in:
云游君 authored and GitHub committed 2026-02-25 16:36:23 +08:00
1 parent abf64f7dd4
commit f648eecd1d
12 files changed
+2402 -1435

No files matched your search

+4 -4
View File
@@ -9,13 +9,13 @@ import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import VueMacros from 'unplugin-vue-macros/vite'
import Markdown from 'unplugin-vue-markdown/vite'
import { VueRouterAutoImports } from 'unplugin-vue-router'
import VueRouter from 'unplugin-vue-router/vite'
import { defineConfig } from 'vite'
import { VitePWA } from 'vite-plugin-pwa'
import VueDevTools from 'vite-plugin-vue-devtools'
import Layouts from 'vite-plugin-vue-layouts'
import generateSitemap from 'vite-ssg-sitemap'
import { VueRouterAutoImports } from 'vue-router/unplugin'
import VueRouter from 'vue-router/vite'
import 'vitest/config'
export default defineConfig({
@@ -26,10 +26,10 @@ export default defineConfig({
},
plugins: [
// https://github.com/posva/unplugin-vue-router
// https://github.com/vuejs/router
VueRouter({
extensions: ['.vue', '.md'],
dts: 'src/typed-router.d.ts',
dts: 'src/route-map.d.ts',
}),
VueMacros({