-
Notifications
You must be signed in to change notification settings - Fork 1
/
vite.config.ts
81 lines (78 loc) · 1.78 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
import path from 'path'
import { defineConfig } from 'vite'
import Vue from '@vitejs/plugin-vue'
import Pages from 'vite-plugin-pages'
import Components from 'unplugin-vue-components/vite'
import AutoImport from 'unplugin-auto-import/vite'
import { presetAttributify, presetIcons, presetUno } from 'unocss'
import Unocss from 'unocss/vite'
export default defineConfig({
resolve: {
alias: {
'~/': `${path.resolve(__dirname, 'src')}/`,
},
},
plugins: [
Vue(),
Pages(),
AutoImport({
imports: [
'vue',
'vue-router',
'@vueuse/core',
],
dts: true,
}),
Components({
dts: true,
}),
Unocss({
shortcuts: [
['btn', 'px-4 py-1 rounded inline-block bg-teal-600 text-white cursor-pointer hover:bg-teal-700 disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50'],
['icon-btn', 'text-[0.9em] inline-block cursor-pointer select-none opacity-75 transition duration-200 ease-in-out hover:opacity-100 hover:text-teal-600'],
],
presets: [
presetUno(),
presetAttributify(),
presetIcons({
scale: 1.2,
}),
],
}),
],
build: {
minify: 'terser',
brotliSize: true,
cssCodeSplit: true,
terserOptions: {
sourceMap: false,
ecma: 5,
ie8: true,
safari10: true,
keep_classnames: false,
keep_fnames: false,
compress: true,
format: {
preserve_annotations: false,
comments: false,
},
},
chunkSizeWarningLimit: 100000,
rollupOptions: {
output: {
preferConst: true,
freeze: true,
},
},
},
optimizeDeps: {
include: [
'vue',
'vue-router',
'@vueuse/core',
],
exclude: [
'vue-demi',
],
},
})