38 lines
1.0 KiB
TypeScript
38 lines
1.0 KiB
TypeScript
import type { UserConfig } from 'vite'
|
|
import type { ViteSSGOptions } from 'vite-ssg'
|
|
import { defineConfig } from 'vite'
|
|
import vue from '@vitejs/plugin-vue'
|
|
import generateSitemap from 'vite-ssg-sitemap'
|
|
import { fileURLToPath, URL } from 'node:url'
|
|
|
|
// https://vite.dev/config/
|
|
const config = {
|
|
base: '/',
|
|
plugins: [vue()],
|
|
ssr: {
|
|
noExternal: ['@kagol/vue-carousel']
|
|
},
|
|
ssgOptions: {
|
|
dirStyle: 'nested',
|
|
script: 'defer',
|
|
onFinished() {
|
|
generateSitemap({
|
|
// 1. 必填:你官网部署后的正式域名。
|
|
// 生成的 sitemap.xml 里需要用这个域名 + 路由路径拼成完整 URL (如 https://site.com/about)
|
|
hostname: 'https://your-website.com/',
|
|
|
|
// 2. 扫描目录:通常是打包后的输出目录
|
|
outDir: 'dist'
|
|
})
|
|
}
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
'@': fileURLToPath(new URL('./src', import.meta.url)),
|
|
_c: fileURLToPath(new URL('./src/components', import.meta.url))
|
|
}
|
|
},
|
|
} satisfies UserConfig & { ssgOptions: ViteSSGOptions }
|
|
|
|
export default defineConfig(config)
|