generated from frandiox/vitesse-ssr-template
-
-
Notifications
You must be signed in to change notification settings - Fork 17
/
vite.config.ts
128 lines (115 loc) · 3.25 KB
/
vite.config.ts
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
import path from 'path'
import { defineConfig } from 'vite'
import Vue from '@vitejs/plugin-vue'
import Pages from 'vite-plugin-pages'
import Layouts from 'vite-plugin-vue-layouts'
import ViteIcons, { ViteIconsResolver } from 'vite-plugin-icons'
import ViteComponents from 'vite-plugin-components'
import Markdown from 'vite-plugin-md'
import WindiCSS from 'vite-plugin-windicss'
import { VitePWA } from 'vite-plugin-pwa'
import VueI18n from '@intlify/vite-plugin-vue-i18n'
import Prism from 'markdown-it-prism'
import vitedge from 'vitedge/plugin.js'
export default defineConfig({
resolve: {
alias: {
'~/': `${path.resolve(process.cwd(), 'src')}/`,
},
},
plugins: [
vitedge(),
Vue({
include: [/\.vue$/, /\.md$/],
}),
// https://github.com/hannoeru/vite-plugin-pages
// @ts-ignore
Pages.default({
extensions: ['vue', 'md'],
extendRoute(route: any) {
if (route.component.endsWith('.md')) {
return {
...route,
meta: {
// Disable page props for static MD routes
propsGetter: false,
},
}
}
},
}),
// https://github.com/JohnCampionJr/vite-plugin-vue-layouts
// @ts-ignore
Layouts.default(),
// https://github.com/antfu/vite-plugin-md
// @ts-ignore
Markdown.default({
wrapperClasses: 'prose prose-sm m-auto text-left',
headEnabled: false, // This relies on useHead
markdownItSetup(md) {
// https://prismjs.com/
md.use(Prism)
},
}),
// https://github.com/antfu/vite-plugin-components
// @ts-ignore
ViteComponents.default({
// allow auto load markdown components under `./src/components/`
extensions: ['vue', 'md'],
// allow auto import and register components used in markdown
customLoaderMatcher: (id: string) => id.endsWith('.md'),
// auto import icons
customComponentResolvers: [
// https://github.com/antfu/vite-plugin-icons
ViteIconsResolver({
componentPrefix: '',
// enabledCollections: ['carbon']
}),
],
}),
// https://github.com/antfu/vite-plugin-icons
// @ts-ignore
ViteIcons.default(),
// https://github.com/antfu/vite-plugin-windicss
// @ts-ignore
WindiCSS({
// config: tailwindConfig,
safelist: 'prose prose-sm m-auto',
}),
// https://github.com/antfu/vite-plugin-pwa
VitePWA({
manifest: {
name: 'Vitesse',
short_name: 'Vitesse',
theme_color: '#ffffff',
icons: [
{
src: '/pwa-192x192.png',
sizes: '192x192',
type: 'image/png',
},
{
src: '/pwa-512x512.png',
sizes: '512x512',
type: 'image/png',
},
{
src: '/pwa-512x512.png',
sizes: '512x512',
type: 'image/png',
purpose: 'any maskable',
},
],
},
}),
// https://github.com/intlify/vite-plugin-vue-i18n
// @ts-ignore
VueI18n.default({
include: [path.resolve(process.cwd(), 'src/i18n/translations/**')],
}),
],
optimizeDeps: {
include: ['vue', 'vue-router', '@vueuse/core'],
exclude: ['vue-demi'],
},
})