-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvite.config.ts
More file actions
52 lines (50 loc) · 2.23 KB
/
Copy pathvite.config.ts
File metadata and controls
52 lines (50 loc) · 2.23 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
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import tailwindcss from '@tailwindcss/vite'
import { readFileSync } from 'fs'
const host = process.env.TAURI_DEV_HOST;
const pkg = JSON.parse(readFileSync('./package.json', 'utf-8'));
export default defineConfig({
plugins: [
tailwindcss(),
react(),
],
clearScreen: false,
server: {
port: 5173,
strictPort: true,
host: host || false,
hmr: host ? { protocol: 'ws', host, port: 5183 } : undefined,
watch: {
ignored: ['**/src-tauri/**'],
},
},
define: {
__APP_VERSION__: JSON.stringify(pkg.version),
},
envPrefix: ['VITE_', 'TAURI_ENV_*'],
build: {
target: process.env.TAURI_ENV_PLATFORM === 'windows'
? 'chrome105'
: 'safari16',
minify: !process.env.TAURI_ENV_DEBUG ? 'esbuild' : false,
sourcemap: !!process.env.TAURI_ENV_DEBUG,
chunkSizeWarningLimit: 900,
rollupOptions: {
output: {
manualChunks(id: string) {
if (id.includes('node_modules/three')) return 'vendor-3d';
if (id.includes('node_modules/recharts') || id.includes('node_modules/uplot')) return 'vendor-charts';
if (id.includes('node_modules/framer-motion')) return 'vendor-motion';
if (id.includes('node_modules/@tauri-apps')) return 'vendor-tauri';
if (id.includes('node_modules/react-router-dom') || id.includes('node_modules/react-router') || id.includes('node_modules/@remix-run')) return 'vendor-router';
if (id.includes('node_modules/react-dom') || id.includes('node_modules/react/')) return 'vendor-react';
if (id.includes('node_modules/lucide-react')) return 'vendor-icons';
if (id.includes('node_modules/react-grid-layout') || id.includes('node_modules/react-resizable')) return 'vendor-layout';
if (id.includes('node_modules/react-markdown') || id.includes('node_modules/rehype') || id.includes('node_modules/remark') || id.includes('node_modules/unified') || id.includes('node_modules/mdast') || id.includes('node_modules/hast') || id.includes('node_modules/micromark') || id.includes('node_modules/vfile')) return 'vendor-markdown';
if (id.includes('node_modules/zustand')) return 'vendor-state';
},
},
},
},
})