Performance: Embed package root manifests into umbraco-package.ts to reduce startup requests#22957
Conversation
|
Claude finished @madsrasmussen's task in 6m 40s —— View job PR ReviewTarget: Removes 37 root-level Important
Suggestions
Approved with Suggestions for improvementGood to go, but please carefully consider the importance of the suggestions. The doc updates in particular are worth doing before merge so contributors and the auto-review tooling stay in sync with the new convention. |
There was a problem hiding this comment.
Pull request overview
This PR reduces Backoffice startup network requests by removing the per-package “root manifests” entry module and embedding each package’s root manifests directly into umbraco-package.ts, so the bundle no longer needs to dynamically import ./manifests.js at runtime.
Changes:
- Updates Vite library entrypoints to stop emitting
manifests.tsas a separate entry chunk (both default config and per-package overrides). - Moves each package’s root
manifestsexport intoumbraco-package.tsand deletes the now-redundantmanifests.tsfile. - Changes bundle extensions from
js: () => import('./manifests.js')tojs: { manifests }so manifests are available without an extra request.
Reviewed changes
Copilot reviewed 96 out of 96 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/Umbraco.Web.UI.Client/src/vite-config-base.ts | Removes manifests.ts from the default library entry list. |
| src/Umbraco.Web.UI.Client/src/packages/webhook/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/webhook/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/user/vite.config.ts | Removes manifests.ts from explicit build entry map. |
| src/Umbraco.Web.UI.Client/src/packages/user/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/user/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/user/index.ts | Re-exports manifests from umbraco-package.js (since manifests.js is no longer emitted). |
| src/Umbraco.Web.UI.Client/src/packages/umbraco-news/vite.config.ts | Removes manifests.ts from explicit entry array. |
| src/Umbraco.Web.UI.Client/src/packages/umbraco-news/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/umbraco-news/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/ufm/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/ufm/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/translation/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/translation/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/tiptap/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/tiptap/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/templating/vite.config.ts | Removes manifests.ts from explicit build entry map. |
| src/Umbraco.Web.UI.Client/src/packages/templating/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/templating/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/telemetry/vite.config.ts | Removes manifests.ts from explicit build entry map. |
| src/Umbraco.Web.UI.Client/src/packages/telemetry/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/telemetry/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/tags/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/tags/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/sysinfo/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/sysinfo/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/static-file/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/static-file/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/settings/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/settings/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/segment/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/segment/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/rte/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/rte/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/relations/vite.config.ts | Removes manifests.ts from explicit build entry map. |
| src/Umbraco.Web.UI.Client/src/packages/relations/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/relations/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/publish-cache/vite.config.ts | Removes manifests.ts from explicit build entry map. |
| src/Umbraco.Web.UI.Client/src/packages/publish-cache/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/publish-cache/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/property-editors/vite.config.ts | Removes manifests.ts from explicit build entry map. |
| src/Umbraco.Web.UI.Client/src/packages/property-editors/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/property-editors/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/preview/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/preview/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/performance-profiling/vite.config.ts | Removes manifests.ts from explicit build entry map. |
| src/Umbraco.Web.UI.Client/src/packages/performance-profiling/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/performance-profiling/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/packages/vite.config.ts | Removes manifests.ts from explicit build entry map. |
| src/Umbraco.Web.UI.Client/src/packages/packages/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/packages/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/multi-url-picker/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/multi-url-picker/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/models-builder/vite.config.ts | Removes manifests.ts from explicit entry array. |
| src/Umbraco.Web.UI.Client/src/packages/models-builder/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/models-builder/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/members/vite.config.ts | Removes manifests.ts from explicit build entry map. |
| src/Umbraco.Web.UI.Client/src/packages/members/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/members/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/media/vite.config.ts | Removes manifests.ts from explicit build entry map. |
| src/Umbraco.Web.UI.Client/src/packages/media/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/media/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/markdown-editor/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/markdown-editor/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/management-api/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/management-api/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/log-viewer/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/log-viewer/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/language/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/language/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/help/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/help/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/health-check/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/health-check/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/extension-insights/vite.config.ts | Removes manifests.ts from explicit entry array. |
| src/Umbraco.Web.UI.Client/src/packages/extension-insights/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/extension-insights/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/embedded-media/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/embedded-media/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/documents/vite.config.ts | Removes manifests.ts from explicit build entry map. |
| src/Umbraco.Web.UI.Client/src/packages/documents/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/documents/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/dictionary/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/dictionary/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/data-type/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/data-type/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/content/vite.config.ts | Removes manifests.ts from explicit build entry map. |
| src/Umbraco.Web.UI.Client/src/packages/content/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/content/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/code-editor/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/code-editor/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/clipboard/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/clipboard/manifests.ts | Deletes redundant root manifests entry module. |
| src/Umbraco.Web.UI.Client/src/packages/block/vite.config.ts | Removes manifests.ts from explicit build entry map. |
| src/Umbraco.Web.UI.Client/src/packages/block/umbraco-package.ts | Embeds root manifests into umbraco-package.ts and switches bundle js to an object export. |
| src/Umbraco.Web.UI.Client/src/packages/block/manifests.ts | Deletes redundant root manifests entry module. |
|
Based on the Claude review:
|
…educe startup requests (#22957) * Consolidate block package into index export * keep umbraco-package.ts and embed manifests instead * Inline package manifests into umbraco-package * update docs
…educe startup requests (#22957) * Consolidate block package into index export * keep umbraco-package.ts and embed manifests instead * Inline package manifests into umbraco-package * update docs
PR #22995 added `input-tiptap.stories.ts` with an import from `'../../manifests.js'`, but PR #22957 (already on release/17.5.0) had deleted that file and moved the `manifests` array into `umbraco-package.ts`. The merge into release/17.5.0 didn't catch the dead import, so Storybook 404s on the story load. Point the import at the new home — `manifests` is still exported by name, so this is a one-line path fix. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PR #22957 deleted every package's `manifests.ts` and consolidated the exports into `umbraco-package.ts`, but `.storybook/preview.js` still imported from the old paths. The result was a Vite resolve error during `npm run build-storybook` (first failure: "Could not resolve ../src/packages/block/manifests from .storybook/preview.js"). 37 import paths swapped from `…/<pkg>/manifests` to `…/<pkg>/umbraco-package`. The two packages that still expose their manifests via a standalone `manifests.ts` — `core` and `core/search` — are left untouched. Verified by `npm run build-storybook` — succeeds. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PR #22995 added `input-tiptap.stories.ts` with an import from `'../../manifests.js'`, but PR #22957 (already on release/17.5.0) had deleted that file and moved the `manifests` array into `umbraco-package.ts`. The merge into release/17.5.0 didn't catch the dead import, so Storybook 404s on the story load. Point the import at the new home — `manifests` is still exported by name, so this is a one-line path fix. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PR #22957 deleted every package's `manifests.ts` and consolidated the exports into `umbraco-package.ts`, but `.storybook/preview.js` still imported from the old paths. The result was a Vite resolve error during `npm run build-storybook` (first failure: "Could not resolve ../src/packages/block/manifests from .storybook/preview.js"). 37 import paths swapped from `…/<pkg>/manifests` to `…/<pkg>/umbraco-package`. The two packages that still expose their manifests via a standalone `manifests.ts` — `core` and `core/search` — are left untouched. Verified by `npm run build-storybook` — succeeds. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
Removes the two-file pattern (separate
manifests.ts+umbraco-package.ts) used by all 37 packages. Manifests are now imported and exported directly fromumbraco-package.ts, eliminating the dynamicjs: () => import('./manifests.js')that previously forced a separate network request per bundle at startup.These files are "setup ceremony" and not exposed/exported to external packages.
Request impact
Test plan
Related to #21152