-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathvite.config.js
63 lines (61 loc) · 1.61 KB
/
vite.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import { fileURLToPath, URL } from 'node:url'
import {defineConfig, splitVendorChunkPlugin} from 'vite'
import vue from '@vitejs/plugin-vue'
import Pages from 'vite-plugin-pages'
import generateSitemap from 'vite-ssg-sitemap'
import {faqIds} from './src/data/faq/questions.js'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
Pages({
extensions: ['vue', 'md'],
}),
vue(),
splitVendorChunkPlugin(),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
},
build: {
sourcemap: true,
assetsInlineLimit: 0,
rollupOptions: {
output:{
manualChunks(id) {
if (id.includes('@fortawesome/free-solid-svg-icons')) return 'fas';
if (id.includes('@fortawesome/free-regular-svg-icons')) return 'far';
if (id.includes('@fortawesome/free-brands-svg-icons')) return 'fab';
}
}
}
},
ssgOptions: {
script: 'async',
mock: true,
crittersOptions : {
path: "./dist",
pruneSource: true,
fonts: true,
allowRules: ['.content'],
},
formatting: "minify",
dirStyle: "nested",
/*include the dynamic FAQ routes*/
includedRoutes(paths, routes) {
return routes.flatMap(route => {
if (route.path === '/:catchAll(.*)') return []
return route.path === '/faq/:id?' ? faqIds.map(id => `/faq/${id}`) : route.path
});
},
/* generate a sitemap */
onFinished() {
generateSitemap({
hostname: "https://kettingpowered.org/",
exclude: ["/404"],
generateRobotsTxt: false,
})
},
}
})