diff --git a/apps/frontend/package.json b/apps/frontend/package.json index 0e093d8..5624da9 100644 --- a/apps/frontend/package.json +++ b/apps/frontend/package.json @@ -13,7 +13,8 @@ "build-only": "vite build", "type-check": "vue-tsc --build --force", "lint": "eslint . --fix", - "format": "prettier --write src/" + "format": "prettier --write src/", + "vite-bundle-visualizer": "npx vite-bundle-visualizer" }, "dependencies": { "@f3ve/vue-markdown-it": "^0.2.3", diff --git a/apps/frontend/vite.config.ts b/apps/frontend/vite.config.ts index 84bffe3..e27d1a9 100644 --- a/apps/frontend/vite.config.ts +++ b/apps/frontend/vite.config.ts @@ -15,6 +15,73 @@ export default defineConfig(({ mode }) => { build: { sourcemap: mode === 'development', reportCompressedSize: false, + + rollupOptions: { + output: { + manualChunks(id) { + if (id.includes('node_modules')) { + // PouchDB и его плагины + if (id.includes('pouchdb')) { + return 'vendor_pouchdb' + } + + // QR-коды и библиотеки для работы с ними + if (id.includes('qr-code-styling')) { + return 'vendor_qr-code-styling' + } + + // PrimeVue и связанные модули + if (id.includes('primevue')) { + return 'vendor_primevue' + } + + // SVGO и зависимости + if (id.includes('svgo') || id.includes('@trysound')) { + return 'vendor_svgo' + } + + // Танстэк Vue Query и ядро + if (id.includes('@tanstack')) { + return 'vendor_tanstack-query' + } + + // Vue и связанные библиотеки + if (id.includes('vue')) { + return 'vendor_vue' + } + + if (id.includes('css-tree')) { + return 'vendor_css-tree' + } + + if (id.includes('css-what')) { + return 'vendor_css-what' + } + + if (id.includes('domutils')) { + return 'vendor_domutils' + } + + if (id.includes('source-map-js')) { + return 'vendor_source-map-js' + } + + if (id.includes('csso')) { + return 'vendor_csso' + } + if (id.includes('entities')) { + return 'vendor_entities' + } + + // Остальные модули из node_modules в vendor + return 'vendor' + } + + // По умолчанию ничего не делим + return null + }, + }, + }, }, plugins: [ vue(), diff --git a/package.json b/package.json index 654c1dd..b39708c 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,6 @@ "node": ">=v20.10.0", "pnpm": ">=8.15.9" }, - "packageManager": "pnpm@8.15.9+sha512.499434c9d8fdd1a2794ebf4552b3b25c0a633abcee5bb15e7b5de90f32f47b513aca98cd5cfd001c31f0db454bc3804edccd578501e4ca293a6816166bbd9f81", "workspaces": { "packages": [ "apps/*",