📦 refactor: Add Additional Chunking to Vite Config (#7544)

*  refactor: Add Additional Chunking to Vite Config

* chore: Integrate rollup-plugin-visualizer for bundle analysis in Vite config & add @codemirror chunks
This commit is contained in:
Danny Avila 2025-05-24 19:47:17 -04:00 committed by GitHub
parent b45ff8e4ed
commit deb8a00e27
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 111 additions and 8 deletions

View file

@ -1,9 +1,10 @@
import path, { resolve } from 'path';
import path from 'path';
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import { VitePWA } from 'vite-plugin-pwa';
import { defineConfig } from 'vite';
import { nodePolyfills } from 'vite-plugin-node-polyfills';
import { visualizer } from 'rollup-plugin-visualizer';
import { compression } from 'vite-plugin-compression2';
import { nodePolyfills } from 'vite-plugin-node-polyfills';
import type { Plugin } from 'vite';
// https://vitejs.dev/config/
@ -84,7 +85,15 @@ export default defineConfig({
compression({
threshold: 10240,
}),
],
process.env.VITE_BUNDLE_ANALYSIS === 'true' &&
visualizer({
filename: 'dist/bundle-analysis.html',
open: true,
gzipSize: true,
brotliSize: true,
template: 'treemap', // 'treemap' | 'sunburst' | 'network'
}),
].filter(Boolean),
publicDir: './public',
build: {
sourcemap: process.env.NODE_ENV === 'development',
@ -128,6 +137,41 @@ export default defineConfig({
return 'security-ui';
}
if (id.includes('@codemirror/view')) {
return 'codemirror-view';
}
if (id.includes('@codemirror/state')) {
return 'codemirror-state';
}
if (id.includes('@codemirror/language')) {
return 'codemirror-language';
}
if (id.includes('@codemirror')) {
return 'codemirror-core';
}
if (id.includes('react-markdown') || id.includes('remark-') || id.includes('rehype-')) {
return 'markdown-processing';
}
if (id.includes('monaco-editor') || id.includes('@monaco-editor')) {
return 'code-editor';
}
if (id.includes('react-window') || id.includes('react-virtual')) {
return 'virtualization';
}
if (id.includes('zod') || id.includes('yup') || id.includes('joi')) {
return 'validation';
}
if (id.includes('axios') || id.includes('ky') || id.includes('fetch')) {
return 'http-client';
}
if (id.includes('react-spring') || id.includes('react-transition-group')) {
return 'animations';
}
if (id.includes('react-select') || id.includes('downshift')) {
return 'advanced-inputs';
}
// Existing chunks
if (id.includes('@radix-ui')) {
return 'radix-ui';
@ -138,7 +182,10 @@ export default defineConfig({
if (id.includes('node_modules/highlight.js')) {
return 'markdown_highlight';
}
if (id.includes('node_modules/hast-util-raw') || id.includes('node_modules/katex')) {
if (id.includes('katex') || id.includes('node_modules/katex')) {
return 'math-katex';
}
if (id.includes('node_modules/hast-util-raw')) {
return 'markdown_large';
}
if (id.includes('@tanstack')) {