Speed up dev startup by pre-bundling external deps in optimizeDeps#134
Speed up dev startup by pre-bundling external deps in optimizeDeps#134arybakov05 wants to merge 4 commits into
Conversation
|
@sneridagh @pnicolli Could this be useful? It does speed up the dev mode and it removes the three reloads when opening the page initially |
There was a problem hiding this comment.
Pull request overview
This PR improves Aurora’s Vite dev startup performance by (1) avoiding unnecessary regeneration of the registry-generated Vite loader (which can trigger restart loops) and (2) pre-declaring dependency pre-bundling via optimizeDeps.include for both the app and key workspace packages/add-ons. It also documents the intended workflow for declaring optimizeDeps entries in a pnpm monorepo.
Changes:
- Prevents
.plone/vite.loader.jsfrom being rewritten when its content is unchanged (avoids Vite restart loops). - Adds
optimizeDeps.includeentries inapps/aurora/vite.config.tsand introducesvite.extend.jsfiles for core add-ons to pre-bundle external deps. - Adds documentation describing how to declare
optimizeDeps(and where to do so depending on add-on vs non-add-on packages).
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/registry/vite-plugin.js | Avoids rewriting generated Vite loader when content is unchanged to prevent restart loops. |
| packages/registry/news/+vite-extend-support.internal | Changelog entry for the loader write-change behavior. |
| packages/plate/vite.extend.js | Declares @plone/plate external deps for Vite pre-bundling. |
| packages/plate/news/+vite-optimize-deps.internal | Changelog entry for Plate optimizeDeps pre-bundling. |
| packages/layout/vite.extend.js | Declares @plone/layout external deps for Vite pre-bundling. |
| packages/layout/news/+vite-optimize-deps.internal | Changelog entry for Layout optimizeDeps pre-bundling. |
| packages/cmsui/vite.extend.js | Declares @plone/cmsui external deps for Vite pre-bundling. |
| packages/cmsui/news/+vite-optimize-deps.internal | Changelog entry for CMS UI optimizeDeps pre-bundling. |
| docs/development/vite-optimize-deps.md | New guide documenting how/where to declare optimizeDeps (add-ons vs app). |
| docs/development/index.md | Adds the new optimizeDeps doc page to the development docs index. |
| apps/aurora/vite.config.ts | Adds app-level optimizeDeps.include declarations for faster dev startup. |
| apps/aurora/news/+vite-optimize-deps.internal | Changelog entry for app-level optimizeDeps declarations. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| 'i18next-browser-languagedetector', | ||
| 'i18next-fs-backend/cjs', | ||
| 'i18next-http-backend', |
| 'remix-i18next/client', | ||
| 'remix-i18next/react', | ||
| 'remix-i18next/server', |
| '@plone/helpers > jotai/utils', | ||
| '@plone/helpers > jotai-optics', | ||
| ], | ||
| }, |
| If a dependency exports subpaths you use (for example `some-lib/react` or `some-lib/client`), add a separate entry for each subpath. | ||
| Vite does not discover subpath exports automatically from the main entry. |
YES, definitely! Thanks! Assigning Steve as well for docs review. |
before:

after:

📚 Documentation preview 📚: https://plone-aurora--134.org.readthedocs.build/