feat(html): support js template without child compiler #7704
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.
Summary
Part of #7588
HtmlWebpackPlugin use child compiler to support functional template and template with loaders. In HtmlRspackPlugin, send data from rust to js and eval string in
vm
will lead huge performance regression in child compiler. So just support functional template here, if you need to use a template with loaders, you should compile it with child compiler in the function by yourself, or just use the HtmlWebpackPlugin.templateContent
or an exported function from.js/.cjs
file path intemplate
, the template parameters will be its argument and it should return a string which will be used as the html content.compilation
object can also be visited from template parameters, which is not able to be visited in template string.templateParameters
, which will be used to customize the template parameters object.Checklist