fix: ESLint errors, stale disable comments, bundle splitting
CI / Build & Quality Checks (push) Successful in 10m28s
CI / Build & Quality Checks (push) Successful in 10m28s
- RoomTimeline.tsx: add eslint-disable comment for intentional eventsLength dep on timelineSegments useMemo (needed to detect in-place timeline mutations) - Remove ~47 stale eslint-disable-next-line comments across 28 files for rules that are now off in the flat config (no-param-reassign, jsx-a11y/media-has-caption, react/no-array-index-key, etc); run prettier to reformat - vite.config.js: move manualChunks from rollupOptions.output to rolldownOptions.output so Rolldown (Vite 8) actually applies it; main bundle drops from 3.5 MB to 814 kB gzip-248 kB, matrix-sdk gets its own 1.16 MB cacheable chunk Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+28
-23
@@ -78,6 +78,27 @@ function serverMatrixSdkCryptoWasm(wasmFilePath) {
|
||||
};
|
||||
}
|
||||
|
||||
const vendorChunks = (id) => {
|
||||
if (id.includes('node_modules/matrix-js-sdk')) return 'matrix-sdk';
|
||||
if (id.includes('node_modules/react-dom')) return 'react-dom';
|
||||
if (
|
||||
id.includes('node_modules/react-router-dom') ||
|
||||
id.includes('node_modules/@remix-run') ||
|
||||
id.includes('node_modules/react-router/')
|
||||
)
|
||||
return 'router';
|
||||
if (id.includes('node_modules/@tanstack')) return 'react-query';
|
||||
if (id.includes('node_modules/linkify')) return 'linkify';
|
||||
if (id.includes('node_modules/dompurify')) return 'dompurify';
|
||||
if (id.includes('node_modules/@sentry')) return 'sentry';
|
||||
if (id.includes('node_modules/i18next') || id.includes('node_modules/react-i18next'))
|
||||
return 'i18n';
|
||||
if (id.includes('node_modules/jotai')) return 'jotai';
|
||||
if (id.includes('node_modules/immer')) return 'immer';
|
||||
if (id.includes('node_modules/folds')) return 'folds';
|
||||
if (id.includes('node_modules/emojibase')) return 'emojibase';
|
||||
};
|
||||
|
||||
export default defineConfig({
|
||||
appType: 'spa',
|
||||
publicDir: false,
|
||||
@@ -139,31 +160,15 @@ export default defineConfig({
|
||||
outDir: 'dist',
|
||||
sourcemap: process.env.SENTRY_AUTH_TOKEN ? 'hidden' : false,
|
||||
copyPublicDir: false,
|
||||
rolldownOptions: { checks: { preferBuiltinFeature: false } },
|
||||
// manualChunks must be in rolldownOptions (not rollupOptions) for Vite 8 / Rolldown
|
||||
rolldownOptions: {
|
||||
checks: { preferBuiltinFeature: false },
|
||||
output: {
|
||||
manualChunks: vendorChunks,
|
||||
},
|
||||
},
|
||||
rollupOptions: {
|
||||
plugins: [inject({ Buffer: ['buffer', 'Buffer'] })],
|
||||
output: {
|
||||
manualChunks: (id) => {
|
||||
if (id.includes('node_modules/matrix-js-sdk')) return 'matrix-sdk';
|
||||
if (id.includes('node_modules/react-dom')) return 'react-dom';
|
||||
if (
|
||||
id.includes('node_modules/react-router-dom') ||
|
||||
id.includes('node_modules/@remix-run') ||
|
||||
id.includes('node_modules/react-router/')
|
||||
)
|
||||
return 'router';
|
||||
if (id.includes('node_modules/@tanstack')) return 'react-query';
|
||||
if (id.includes('node_modules/linkify')) return 'linkify';
|
||||
if (id.includes('node_modules/dompurify')) return 'dompurify';
|
||||
if (id.includes('node_modules/@sentry')) return 'sentry';
|
||||
if (id.includes('node_modules/i18next') || id.includes('node_modules/react-i18next'))
|
||||
return 'i18n';
|
||||
if (id.includes('node_modules/jotai')) return 'jotai';
|
||||
if (id.includes('node_modules/immer')) return 'immer';
|
||||
if (id.includes('node_modules/folds')) return 'folds';
|
||||
if (id.includes('node_modules/emojibase')) return 'emojibase';
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user