feat: avoid scanner during build and only optimize CJS in SSR #8932
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.
Description
Follow up to:
That enabled back the scanner also during build to fix:
optimizeDeps
does not process aliased imports #8867This PR avoids the scanner by refactoring preAlias to register the aliased dependency when needed.
With this, we also now support aliased optimized deps when added in an import by a plugin. This was failing before because they were invisible to the scanner
The PR now also implements the change in heuristics to what needs to be optimized during SSR. Only no-external CJS deps will be optimized during SSR, the user can opt-in using
ssr.optimizeDeps.include
Some details:
'vitepress'
tooptimizeDeps.exclude
since it is aliased with replacementjoin(DIST_CLIENT_PATH, '/index')
, and in it a virtual module is used. This was not a problem with commonjs during build, but now dependencies need to be excluded if they are using Vite features.What is the purpose of this pull request?