fix(ssr): improved dependency resolution#5220
Closed
aleclarson wants to merge 3 commits intovitejs:mainfrom
Closed
fix(ssr): improved dependency resolution#5220aleclarson wants to merge 3 commits intovitejs:mainfrom
aleclarson wants to merge 3 commits intovitejs:mainfrom
Conversation
- never prepend /@id/ to bare imports - preserve bare imports rather than convert them to absolute paths which /@fs/ prefix Note that `ssrImport` will never receive the following specifiers (after this PR is merged): - relative path - path with /@id/ prefix - path with /@fs/ prefix
Member
|
Seems there's one test failing - looks good at a first glance but ping me after we fix the tests. |
Member
|
@aleclarson I'm wondering how we could merge the improvements in this PR. Before the conflicts, there were test fails and that is why it stalled. Since there are several changes in the PR, would it make sense to create smaller PRs so it is easier to make the CI happy (at least for some of them) and we can get them in? |
Contributor
Author
|
Sorry the radio silence. Quick update from me: I won't be able to push this forward, since my time is limited and I'm not currently using Vite SSR. Hopefully someone can fork this PR and rebase / fix the tests. 🤞 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR affects SSR only.
Support
resolveIdhooks that coerce bare imports into local module paths.For example, the
vite-tsconfig-pathsplugin.vite:resolve, check if the resolved ID is an absolute path that exists in the project root. If it is, avoid marking it as external (for SSR builds) and return the absolute path.Respect
ssr.noExternalinsidessrImportcreateSSRExternalsFilterfunction, which wrapscreateFilterfrom@rollup/plugin-utilsvite:resolve, check if the resolved ID is an absolute path that exists in the project root. If not, preserve the unresolvedidso thessr.noExternalcheck inssrImportcan work properly.Note that
ssrImportwill never receive the following specifiers (after this PR is merged):/@id/prefix/@fs/prefixUse
moduleGraph.getModuleByUrlinstead of accessingurlToModuleMapdirectly, so that bare imports added tossr.noExternalare normalized first. Otherwise, the module will always be undefined.Remove the need for
unwrapIdinsidessrImport/@id/to bare imports insidevite:import-analysis