-
-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathvite.config.ts
More file actions
77 lines (72 loc) 路 2.45 KB
/
Copy pathvite.config.ts
File metadata and controls
77 lines (72 loc) 路 2.45 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
import path from 'node:path';
import tailwindcss from '@tailwindcss/vite';
import react from '@vitejs/plugin-react';
import { defineConfig } from 'vite';
const namedChunks = {
'date-fns': ['date-fns'],
'dnd-kit': ['@dnd-kit/core', '@dnd-kit/sortable', '@dnd-kit/utilities'],
frimousse: ['frimousse'],
lucide: ['lucide-react'],
markdown: ['marked'],
react: ['react', 'react-dom'],
'rrule-temporal': ['rrule-temporal'],
sonner: ['sonner'],
'tanstack-query': ['@tanstack/react-query', '@tanstack/query-core'],
'tauri-core': ['@tauri-apps/cli', '@tauri-apps/api'],
};
export default defineConfig({
plugins: [react(), tailwindcss()],
resolve: {
alias: {
'~': path.resolve(import.meta.dirname, './src'),
$components: path.resolve(import.meta.dirname, './src/components'),
$context: path.resolve(import.meta.dirname, './src/context'),
$constants: path.resolve(import.meta.dirname, './src/constants'),
$hooks: path.resolve(import.meta.dirname, './src/hooks'),
$lib: path.resolve(import.meta.dirname, './src/lib'),
$providers: path.resolve(import.meta.dirname, './src/providers'),
$styles: path.resolve(import.meta.dirname, './src/styles'),
$types: path.resolve(import.meta.dirname, './src/types'),
$utils: path.resolve(import.meta.dirname, './src/utils'),
// tree-shake lucide-react by resolving icons/* to individual ESM files
'lucide-react/icons': path.resolve(
import.meta.dirname,
'./node_modules/lucide-react/dist/esm/icons',
),
},
},
clearScreen: false,
optimizeDeps: {
exclude: ['@tailwindcss/vite'],
},
server: {
port: 1420,
strictPort: true,
watch: {
ignored: ['**/src-tauri/gen/**'],
},
},
envPrefix: ['VITE_', 'TAURI_'],
build: {
minify: !process.env.TAURI_DEBUG,
sourcemap: !!process.env.TAURI_DEBUG,
rolldownOptions: {
output: {
chunkFileNames: (chunk) =>
[...Object.keys(namedChunks), 'tauri-plugins'].includes(chunk.name)
? 'assets/[name].js'
: 'assets/[name]-[hash].js',
manualChunks: (id) => {
for (const [chunkName, modules] of Object.entries(namedChunks)) {
if (id.includes('node_modules/@tauri-apps/plugin-')) {
return 'tauri-plugins';
}
if (modules.some((mod) => id.includes(`node_modules/${mod}/`))) {
return chunkName;
}
}
},
},
},
},
});