mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-06-05 12:44:22 +00:00
perf(frontend): split codemirror / jalali / otpauth into lazy vendor chunks
Heavy libs (codemirror, persian-calendar-suite, otpauth) and antd's rc-/cssinjs transitive deps used to fall into the catch-all `vendor` chunk and load with every entry point. Give them their own manualChunks groups so they only load with the lazy modal/page that needs them. Initial vendor (catch-all) drops from 1293 kB / 408 kB gzip to 76 kB / 27 kB gzip; codemirror (408 kB / 131 kB gzip) is now on the JsonEditor lazy path instead of the inbounds/clients/index initial load.
This commit is contained in:
parent
c12d34a262
commit
522e8ceee7
1 changed files with 17 additions and 1 deletions
|
|
@ -174,7 +174,16 @@ export default defineConfig({
|
|||
manualChunks(id) {
|
||||
if (!id.includes('node_modules')) return undefined;
|
||||
if (id.includes('/node_modules/antd/')) return 'vendor-antd';
|
||||
if (id.includes('/@ant-design/icons/')) return 'vendor-icons';
|
||||
if (id.includes('/@ant-design/icons/') || id.includes('/@ant-design/icons-svg/')) return 'vendor-icons';
|
||||
if (
|
||||
id.includes('/node_modules/@rc-component/')
|
||||
|| id.includes('/node_modules/rc-')
|
||||
|| id.includes('/@ant-design/cssinjs')
|
||||
|| id.includes('/@ant-design/colors')
|
||||
|| id.includes('/@ant-design/fast-color')
|
||||
|| id.includes('/@ant-design/react-slick')
|
||||
|| id.includes('/@ctrl/tinycolor')
|
||||
) return 'vendor-antd';
|
||||
if (
|
||||
id.includes('/node_modules/react-i18next/')
|
||||
|| id.includes('/node_modules/i18next/')
|
||||
|
|
@ -184,6 +193,13 @@ export default defineConfig({
|
|||
|| id.includes('/node_modules/react-dom/')
|
||||
|| id.includes('/node_modules/scheduler/')
|
||||
) return 'vendor-react';
|
||||
if (
|
||||
id.includes('/node_modules/codemirror/')
|
||||
|| id.includes('/node_modules/@codemirror/')
|
||||
|| id.includes('/node_modules/@lezer/')
|
||||
) return 'vendor-codemirror';
|
||||
if (id.includes('/node_modules/persian-calendar-suite/')) return 'vendor-jalali';
|
||||
if (id.includes('/node_modules/otpauth/')) return 'vendor-otpauth';
|
||||
if (id.includes('dayjs')) return 'vendor-dayjs';
|
||||
if (id.includes('axios')) return 'vendor-axios';
|
||||
return 'vendor';
|
||||
|
|
|
|||
Loading…
Reference in a new issue