dx(compiler-dom): move ssr specific template warning to compiler-ssr (fix #12088) #12704
+23
−10
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.
fix #12088
The original feature
PR #10734 introduced a template compiler warning for html hierarchy that is known to introduce modifications of the DOM by browsers. This is reported as incompatible with the Vue SSR implementation. Helping the user avoid this pitfall is a good quality of life feature.
The Problem
As discussed in issue #12088 the implementation of this compiler warning causes problems for non SSR users, whom are required to follow the stricter and optional HTML syntax as laid out by the imported "html validation" code from https://github.com/MananTank/validate-html-nesting
The proposed fix
This PR moves the html validation to compiler-ssr and rewords the warning. Thus, the compiler warning will propagate to the warning context that runs compiler-ssr ie. the server-renderer.
Note that the user will still get the runtime client side warning that there is a hydration mismatch, just like before:
Given (the correct) HTML: