This repository has been archived by the owner on Apr 6, 2023. It is now read-only.
fix(nuxt): interopDefault for page component imports #6468
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#14445
β Type of change
π Description
Vue-router has a built-in feature to interop default export of component imports (Source code: here and here)
isESModule
utility invue-router
normally works when importing in native esm (obj[Symbol.toStringTag] === 'Module'
) or with esm-compatible chunks (obj.__esModule
). But this can be broken if there is a second transform build step (in this case was recent change in netlify builder) that converts component dynamic imports to simple{ default: [getter] }
without__esModule
flag.This PR, enables a more direct approach to resolve default component page exports passed to
vue-router
usinginteropDefault: true
passed toknitwork.genDynamicImport
that appends.then(m => m.default || m)
to router component imports.Since this change seems to fix the root-cause of regression, i'm setting default value of
viteServerDynamicImports
introduced in #6433 totrue
but keep it to opt-out until we sure issues are fixed.PS: Thanks to @orinokai and @danielroe that help along with long journey of debugging!
π Checklist