@@ -20,6 +20,72 @@ export default defineConfig({
2020 } ,
2121 build : {
2222 outDir : "build" ,
23+ rollupOptions : {
24+ output : {
25+ manualChunks : {
26+ // Core React dependencies (rarely change)
27+ vendor : [ "react" , "react-dom" , "zustand" ] ,
28+
29+ // Heavy parsing libraries (version-dependent)
30+ parsers : [
31+ "espree" ,
32+ "esquery" ,
33+ "@eslint/css" ,
34+ "@eslint/json" ,
35+ "@eslint/markdown" ,
36+ "@html-eslint/eslint-plugin" ,
37+ "eslint-linter-browserify" ,
38+ "eslint-scope" ,
39+ ] ,
40+
41+ // UI framework components (stable)
42+ ui : [
43+ "@radix-ui/react-accordion" ,
44+ "@radix-ui/react-dialog" ,
45+ "@radix-ui/react-dropdown-menu" ,
46+ "@radix-ui/react-label" ,
47+ "@radix-ui/react-popover" ,
48+ "@radix-ui/react-select" ,
49+ "@radix-ui/react-slot" ,
50+ "@radix-ui/react-switch" ,
51+ "@radix-ui/react-toast" ,
52+ "@radix-ui/react-toggle" ,
53+ "@radix-ui/react-toggle-group" ,
54+ ] ,
55+
56+ // Code editor (large, separate feature)
57+ editor : [
58+ "@uiw/react-codemirror" ,
59+ "codemirror" ,
60+ "@codemirror/lang-css" ,
61+ "@codemirror/lang-html" ,
62+ "@codemirror/lang-javascript" ,
63+ "@codemirror/lang-json" ,
64+ "@codemirror/lang-markdown" ,
65+ "@codemirror/language" ,
66+ "@lezer/highlight" ,
67+ ] ,
68+
69+ // Utilities and styling (frequently changing)
70+ utils : [
71+ "clsx" ,
72+ "tailwind-merge" ,
73+ "class-variance-authority" ,
74+ "lucide-react" ,
75+ "use-debounced-effect" ,
76+ ] ,
77+
78+ // Visualization libraries
79+ visualization : [ "graphviz-react" , "react-resizable-panels" ] ,
80+ } ,
81+ chunkFileNames : "assets/[name]-[hash].js" ,
82+ entryFileNames : "assets/[name]-[hash].js" ,
83+ assetFileNames : "assets/[name]-[hash].[ext]" ,
84+ } ,
85+ } ,
86+ minify : "esbuild" ,
87+ chunkSizeWarningLimit : 1000 ,
88+ sourcemap : false ,
2389 } ,
2490 esbuild : {
2591 keepNames : true ,
0 commit comments