This repository has been archived by the owner on Apr 6, 2023. It is now read-only.
fix(nuxt)!: use parser to generate page metadata #8536
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🔗 Linked issue
resolves nuxt/nuxt#15115, resolves nuxt/framework#8059, resolves nuxt/nuxt#12919, resolves nuxt/nuxt#14483, resolves nuxt/nuxt#15282, resolves nuxt/nuxt#14650, resolves nuxt/nuxt#14742
related nuxt/nuxt#14584
❓ Type of change
📚 Description
This PR reworks the implementation of
definePageMeta
to use the built-in parser, and complete overwrite the source file. The previous implementation was causing vite + webpack to mark any imports into the page as dependencies of the metadata, which meant that (in development) vite initial load was sigificantly affected negatively. And in production, both bundlers were rendering far too many prefetches into the HTML.In comparison, in just our test fixture, this PR reduces:
👉 Breaking changes
As we are parsing now, a more expensive operation, we now restrict transforms. Only pages within a pages directory (or a layer's pages directory) are scanned for page metadata. If a user is adding a page through a hook (which is the other way for pages to be registered), they can add the metadata manually at that point, rather than relying on
definePageMeta
extraction.📝 Checklist