修复打包错误

This commit is contained in:
2025-10-26 09:59:54 +08:00
parent 7111e82932
commit 3ee320b2b4
2 changed files with 56 additions and 117 deletions

View File

@@ -156,7 +156,6 @@ pub fn write_claude_config(config: &ClaudeConfig) -> Result<(), String> {
} }
/// 备份当前配置 /// 备份当前配置
#[allow(dead_code)]
pub fn backup_claude_config() -> Result<(), String> { pub fn backup_claude_config() -> Result<(), String> {
let config_path = get_claude_config_path()?; let config_path = get_claude_config_path()?;
let backup_path = get_config_backup_path()?; let backup_path = get_config_backup_path()?;

View File

@@ -7,123 +7,63 @@ const host = process.env.TAURI_DEV_HOST;
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default defineConfig(async () => ({ export default defineConfig(async () => ({
plugins: [react(), tailwindcss()], plugins: [react(), tailwindcss()],
// Path resolution // Path resolution
resolve: { resolve: {
alias: { alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)), "@": fileURLToPath(new URL("./src", import.meta.url)),
}, },
}, },
// Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
// //
// 1. prevent vite from obscuring rust errors // 1. prevent vite from obscuring rust errors
clearScreen: false, clearScreen: false,
// 2. tauri expects a fixed port, fail if that port is not available // 2. tauri expects a fixed port, fail if that port is not available
server: { server: {
port: 1420, port: 1420,
strictPort: true, strictPort: true,
host: host || false, host: host || false,
hmr: host hmr: host
? { ? {
protocol: "ws", protocol: "ws",
host, host,
port: 1421, port: 1421,
} }
: undefined, : undefined,
watch: { watch: {
// 3. tell vite to ignore watching `src-tauri` // 3. tell vite to ignore watching `src-tauri`
ignored: ["**/src-tauri/**"], ignored: ["**/src-tauri/**"],
}, },
}, },
// Build configuration for code splitting // Build configuration for code splitting
build: { build: {
// Increase chunk size warning limit to 3000 KB // Increase chunk size warning limit to 3000 KB
chunkSizeWarningLimit: 3000, chunkSizeWarningLimit: 3000,
rollupOptions: { rollupOptions: {
output: { output: {
// Manual chunks for better code splitting // Manual chunks for better code splitting
manualChunks: (id) => { manualChunks: {
// React core // Vendor chunks
if (id.includes('node_modules/react/') || id.includes('node_modules/react-dom/')) { 'react-vendor': ['react', 'react-dom'],
return 'react-vendor'; 'ui-vendor': ['@radix-ui/react-dialog', '@radix-ui/react-dropdown-menu', '@radix-ui/react-select', '@radix-ui/react-tabs', '@radix-ui/react-tooltip', '@radix-ui/react-switch', '@radix-ui/react-popover'],
} 'editor-vendor': ['@uiw/react-md-editor'],
'monaco-editor': ['monaco-editor', '@monaco-editor/react'],
// Monaco Editor - split into separate chunks 'syntax-vendor': ['react-syntax-highlighter'],
if (id.includes('node_modules/monaco-editor/')) { // Animation and motion
return 'monaco-editor'; 'framer-motion': ['framer-motion'],
} // Tauri and other utilities
if (id.includes('node_modules/@monaco-editor/')) { 'tauri': ['@tauri-apps/api', '@tauri-apps/plugin-dialog', '@tauri-apps/plugin-shell', '@tauri-apps/plugin-fs', '@tauri-apps/plugin-clipboard-manager'],
return 'monaco-react'; 'utils': ['date-fns', 'clsx', 'tailwind-merge'],
} // Charts and visualization
'recharts': ['recharts'],
// Radix UI - split into smaller chunks // Virtual scrolling
if (id.includes('node_modules/@radix-ui/')) { 'virtual': ['@tanstack/react-virtual'],
if (id.includes('react-dialog') || id.includes('react-dropdown-menu')) { },
return 'radix-overlay'; },
}
if (id.includes('react-select') || id.includes('react-tabs')) {
return 'radix-navigation';
}
return 'radix-base';
}
// Tauri
if (id.includes('node_modules/@tauri-apps/')) {
return 'tauri';
}
// Charts
if (id.includes('node_modules/recharts/')) {
return 'recharts';
}
// Framer Motion
if (id.includes('node_modules/framer-motion/')) {
return 'framer-motion';
}
// Syntax highlighting
if (id.includes('node_modules/react-syntax-highlighter/')) {
return 'syntax-vendor';
}
// Markdown editor
if (id.includes('node_modules/@uiw/react-md-editor/')) {
return 'editor-vendor';
}
// DnD Kit
if (id.includes('node_modules/@dnd-kit/')) {
return 'dnd-kit';
}
// Virtual scrolling
if (id.includes('node_modules/@tanstack/react-virtual/')) {
return 'virtual';
}
// Utilities
if (id.includes('node_modules/date-fns/') ||
id.includes('node_modules/clsx/') ||
id.includes('node_modules/tailwind-merge/')) {
return 'utils';
}
// Lucide icons
if (id.includes('node_modules/lucide-react/')) {
return 'lucide-icons';
}
// Other large node_modules
if (id.includes('node_modules/')) {
return 'vendor';
}
}, },
},
}, },
},
})); }));