Merge pull request #175 from Worklenz/imp/task-list-performance-fixes

feat(config): refine Vite configuration for improved chunking and mod…
This commit is contained in:
Chamika J
2025-06-21 19:25:28 +05:30
committed by GitHub

View File

@@ -23,6 +23,8 @@ export default defineConfig(({ command, mode }) => {
{ find: '@services', replacement: path.resolve(__dirname, './src/services') }, { find: '@services', replacement: path.resolve(__dirname, './src/services') },
{ find: '@api', replacement: path.resolve(__dirname, './src/api') }, { find: '@api', replacement: path.resolve(__dirname, './src/api') },
], ],
// **Ensure single React instance**
dedupe: ['react', 'react-dom'],
}, },
// **Development Server** // **Development Server**
@@ -70,32 +72,16 @@ export default defineConfig(({ command, mode }) => {
// **Rollup Options** // **Rollup Options**
rollupOptions: { rollupOptions: {
output: { output: {
// **Optimized Chunking Strategy** // **Simplified Chunking Strategy to avoid React context issues**
manualChunks(id) { manualChunks: {
// Core React libraries - keep together to avoid dependency issues // Keep React and all React-dependent libraries together
if (id.includes('react') || id.includes('react-dom')) { 'react-vendor': ['react', 'react-dom', 'react/jsx-runtime'],
return 'react-vendor';
}
// Router // Separate chunk for router
if (id.includes('react-router')) { 'react-router': ['react-router-dom'],
return 'react-router';
}
// Ant Design and Icons together to share React context // Keep Ant Design separate but ensure React is available
if (id.includes('antd') || id.includes('@ant-design/icons')) { 'antd': ['antd', '@ant-design/icons'],
return 'antd';
}
// Internationalization
if (id.includes('i18next')) {
return 'i18n';
}
// Node modules vendor chunk for other libraries
if (id.includes('node_modules')) {
return 'vendor';
}
}, },
// **File Naming Strategies** // **File Naming Strategies**
@@ -122,6 +108,9 @@ export default defineConfig(({ command, mode }) => {
// **Preserve modules to avoid context issues** // **Preserve modules to avoid context issues**
preserveEntrySignatures: 'strict', preserveEntrySignatures: 'strict',
// **Ensure proper module interop**
interop: 'auto',
}, },
// **Experimental features for better performance** // **Experimental features for better performance**