mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-14 18:44:05 +02:00
# Description of Changes Vite currently warns that when it's bundling our code that the chunk size is way too high because most of the imports are static so it can't split them into smaller chunks. This PR changes a few key areas to use lazy imports to try and make the chunks as small as possible with minimal code changes. Vite's warnings kick in at minified chunks being >500kB, and we've got a little way to go still to reach that, but we can keep chipping away at this and I'd rather get the biggest wins done now. I've also included Lighthouse scores because there's been discussion about improving ours recently. It's not the aim of this PR to improve it, but it's nice that it makes it a little better. ## Current main chunks Build split into 12 chunks. Largest chunk in build is: ``` [frontend:build] dist/assets/index-B6JiWDxZ.js 5,175.51 kB │ gzip: 1,495.85 kB ``` <img width="1442" height="775" alt="image" src="https://github.com/user-attachments/assets/b0e8a3fa-4ef3-4ccd-8c1d-bfed2d99bd27" /> Lighthouse score: <img width="423" height="146" alt="before" src="https://github.com/user-attachments/assets/c62056e8-2e77-49a6-a1ae-f08ec8021fb3" /> ## This PR's chunks Build split into 176 chunks. Largest chunk in build is: ``` [frontend:build] dist/assets/index-qCgeCY4B.js 2,878.54 kB │ gzip: 861.03 kB ``` <img width="1447" height="776" alt="image" src="https://github.com/user-attachments/assets/8d0c3cf0-cc25-41c3-b114-4940d3e99349" /> Lighthouse score: <img width="402" height="145" alt="after" src="https://github.com/user-attachments/assets/99a26eb3-bd15-4b92-bf22-82b58b458f52" /> --------- Co-authored-by: EthanHealy01 <[email protected]>
152 lines
4.8 KiB
JSON
152 lines
4.8 KiB
JSON
{
|
|
"name": "frontend",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"license": "SEE LICENSE IN https://raw.githubusercontent.com/Stirling-Tools/Stirling-PDF/refs/heads/main/proprietary/LICENSE",
|
|
"proxy": "http://localhost:8080",
|
|
"dependencies": {
|
|
"@atlaskit/pragmatic-drag-and-drop": "^1.7.7",
|
|
"@cantoo/pdf-lib": "^2.5.3",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@embedpdf/core": "^2.8.0",
|
|
"@embedpdf/engines": "^2.8.0",
|
|
"@embedpdf/models": "^2.8.0",
|
|
"@embedpdf/plugin-annotation": "^2.8.0",
|
|
"@embedpdf/plugin-attachment": "^2.8.0",
|
|
"@embedpdf/plugin-bookmark": "^2.8.0",
|
|
"@embedpdf/plugin-document-manager": "^2.8.0",
|
|
"@embedpdf/plugin-export": "^2.8.0",
|
|
"@embedpdf/plugin-history": "^2.8.0",
|
|
"@embedpdf/plugin-interaction-manager": "^2.8.0",
|
|
"@embedpdf/plugin-pan": "^2.8.0",
|
|
"@embedpdf/plugin-print": "^2.8.0",
|
|
"@embedpdf/plugin-redaction": "^2.8.0",
|
|
"@embedpdf/plugin-render": "^2.8.0",
|
|
"@embedpdf/plugin-rotate": "^2.8.0",
|
|
"@embedpdf/plugin-scroll": "^2.8.0",
|
|
"@embedpdf/plugin-search": "^2.8.0",
|
|
"@embedpdf/plugin-selection": "^2.8.0",
|
|
"@embedpdf/plugin-spread": "^2.8.0",
|
|
"@embedpdf/plugin-thumbnail": "^2.8.0",
|
|
"@embedpdf/plugin-tiling": "^2.8.0",
|
|
"@embedpdf/plugin-viewport": "^2.8.0",
|
|
"@embedpdf/plugin-zoom": "^2.8.0",
|
|
"@emotion/react": "^11.14.0",
|
|
"@emotion/styled": "^11.14.1",
|
|
"@iconify/react": "^6.0.2",
|
|
"@mantine/core": "^8.3.1",
|
|
"@mantine/dates": "^8.3.1",
|
|
"@mantine/dropzone": "^8.3.1",
|
|
"@mantine/hooks": "^8.3.1",
|
|
"@mui/icons-material": "^7.3.2",
|
|
"@mui/material": "^7.3.2",
|
|
"@posthog/react": "^1.8.2",
|
|
"@reactour/tour": "^3.8.0",
|
|
"@stripe/react-stripe-js": "^4.0.2",
|
|
"@stripe/stripe-js": "^7.9.0",
|
|
"@supabase/supabase-js": "^2.47.13",
|
|
"@tailwindcss/postcss": "^4.1.13",
|
|
"@tanstack/react-virtual": "^3.13.12",
|
|
"@tauri-apps/api": "^2.10.1",
|
|
"@tauri-apps/plugin-dialog": "^2.6.0",
|
|
"@tauri-apps/plugin-fs": "^2.4.5",
|
|
"@tauri-apps/plugin-http": "^2.5.7",
|
|
"@tauri-apps/plugin-notification": "^2.3.3",
|
|
"@tauri-apps/plugin-shell": "^2.3.5",
|
|
"@userback/widget": "^0.3.12",
|
|
"autoprefixer": "^10.4.21",
|
|
"axios": "^1.15.0",
|
|
"d3": "^7.9.0",
|
|
"globals": "^17.1.0",
|
|
"i18next": "^25.5.2",
|
|
"i18next-browser-languagedetector": "^8.2.0",
|
|
"jszip": "^3.10.1",
|
|
"license-report": "^6.8.0",
|
|
"pdfjs-dist": "^5.4.149",
|
|
"peerjs": "^1.5.5",
|
|
"pixelmatch": "^7.1.0",
|
|
"posthog-js": "^1.268.0",
|
|
"qrcode.react": "^4.2.0",
|
|
"react": "^19.1.1",
|
|
"react-dom": "^19.1.1",
|
|
"react-easy-crop": "^5.5.6",
|
|
"react-i18next": "^15.7.3",
|
|
"react-rnd": "^10.5.2",
|
|
"react-router-dom": "^7.9.1",
|
|
"recharts": "^3.7.0",
|
|
"signature_pad": "^5.0.4",
|
|
"smol-toml": "^1.4.2",
|
|
"tailwindcss": "^4.1.13",
|
|
"web-vitals": "^5.1.0"
|
|
},
|
|
"scripts": {
|
|
"update:minor": "node scripts/update-minor.js",
|
|
"update:major": "npx npm-check-updates -u && npm install",
|
|
"update:interactive": "npx npm-check-updates -i",
|
|
"update:minor-strict": "npx npm-check-updates -u --target minor && npm install"
|
|
},
|
|
"browserslist": {
|
|
"production": [
|
|
">0.2%",
|
|
"not dead",
|
|
"not op_mini all"
|
|
],
|
|
"development": [
|
|
"last 1 chrome version",
|
|
"last 1 firefox version",
|
|
"last 1 safari version"
|
|
]
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^10.0.1",
|
|
"@iconify-json/material-symbols": "^1.2.53",
|
|
"@iconify/utils": "^3.1.0",
|
|
"@playwright/test": "^1.55.0",
|
|
"@tauri-apps/cli": "^2.9.6",
|
|
"@testing-library/dom": "^10.4.1",
|
|
"@testing-library/jest-dom": "^6.8.0",
|
|
"@testing-library/react": "^16.3.0",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@types/d3": "^7.4.3",
|
|
"@types/gapi": "^0.0.47",
|
|
"@types/gapi.client.drive-v3": "^0.0.5",
|
|
"@types/google.accounts": "^0.0.18",
|
|
"@types/google.picker": "^0.0.51",
|
|
"@types/node": "^24.5.2",
|
|
"@types/react": "^19.1.13",
|
|
"@types/react-dom": "^19.1.9",
|
|
"@typescript-eslint/eslint-plugin": "^8.44.1",
|
|
"@typescript-eslint/parser": "^8.44.1",
|
|
"@vitejs/plugin-react-swc": "^4.1.0",
|
|
"@vitest/coverage-v8": "^3.2.4",
|
|
"dotenv": "^16.4.7",
|
|
"dpdm": "^3.14.0",
|
|
"eslint": "^10.0.2",
|
|
"jsdom": "^27.0.0",
|
|
"license-checker": "^25.0.1",
|
|
"madge": "^8.0.0",
|
|
"postcss": "^8.5.12",
|
|
"postcss-cli": "^11.0.1",
|
|
"postcss-preset-mantine": "^1.18.0",
|
|
"postcss-simple-vars": "^7.0.1",
|
|
"prettier": "^3.8.1",
|
|
"puppeteer": "^24.25.0",
|
|
"rollup-plugin-visualizer": "^7.0.1",
|
|
"tsx": "^4.21.0",
|
|
"typescript": "^5.9.2",
|
|
"typescript-eslint": "^8.44.1",
|
|
"vite": "^7.3.2",
|
|
"vite-plugin-static-copy": "^3.1.4",
|
|
"vite-tsconfig-paths": "^5.1.4",
|
|
"vitest": "^3.2.4"
|
|
},
|
|
"depcheck": {
|
|
"ignoreMatches": [
|
|
"@emotion/*",
|
|
"tailwindcss",
|
|
"@testing-library/user-event",
|
|
"@vitest/coverage-v8"
|
|
]
|
|
}
|
|
}
|