-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvite.config.js
More file actions
98 lines (97 loc) · 2.3 KB
/
vite.config.js
File metadata and controls
98 lines (97 loc) · 2.3 KB
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
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import { VitePWA } from 'vite-plugin-pwa';
export default defineConfig({
server: {
hmr: {
overlay: false, // Disable the error overlay
timeout: 5000, // Increase timeout
},
watch: {
usePolling: false,
useFsEvents: true,
ignored: ['**/node_modules/**', '**/dist/**'], // Ignore unnecessary files
},
fs: {
strict: false,
},
},
worker: {
format: 'es',
},
build: {
target: 'esnext',
minify: 'esbuild',
terserOptions: {
compress: {
drop_debugger: true,
},
},
rollupOptions: {
output: {
assetFileNames: 'assets/[name]-[hash][extname]',
chunkFileNames: 'assets/[name]-[hash].js',
entryFileNames: 'assets/[name]-[hash].js',
},
},
chunkSizeWarningLimit: 3000,
sourcemap: false,
assetsInlineLimit: 4096,
cssCodeSplit: true,
},
esbuild: {
drop: ['debugger'],
legalComments: 'none',
},
plugins: [
vue(),
VitePWA({
includeAssets: [
'favicon.ico',
'robots.txt',
'*.png',
'*.jpg',
'*.svg',
'*.gif',
'*.glb',
'*.mp3',
'*.wav',
'*.ogg',
],
registerType: 'prompt',
workbox: {
maximumFileSizeToCacheInBytes: 3 * 1024 * 1024,
navigateFallback: '/index.html',
navigateFallbackDenylist: [/\.html$/, /\/api\//],
cleanupOutdatedCaches: true,
runtimeCaching: [
{
urlPattern: /^https:\/\/fonts\.(?:googleapis|gstatic)\.com\/.*/i,
handler: 'CacheFirst',
options: {
cacheName: 'google-fonts-cache',
expiration: {
maxEntries: 20,
maxAgeSeconds: 31536000,
},
cacheableResponse: {
statuses: [0, 200],
},
},
},
{
urlPattern: /\.(?:png|jpg|jpeg|svg|gif|glb|mp3|wav|ogg)$/,
handler: 'StaleWhileRevalidate',
options: {
cacheName: 'assets-cache',
expiration: {
maxEntries: 300,
maxAgeSeconds: 2592000,
},
},
},
],
},
}),
],
});