fix: enforce ascii_only in terser to ensure ASCII-only minified bundle fixes(#4043) #4088
+5,723
−626
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 fixes #4043.
The minified D3 bundle (
d3.min.js) previously included non-ASCII characterssuch as
µand−. When these characters appear in a minified JavaScriptbundle, browser engines must represent the entire file as a 2-byte UTF-16
string rather than a 1-byte Latin-1 string, which increases memory usage and
slows down parsing.
This PR updates the Rollup Terser configuration so that the minified output is
ASCII-only.
What was changed
Terser defaults to
ascii_only: false. This allows Unicode characters to passthrough during minification. To enforce ASCII-only output:
format.ascii_only: truehas been added to the Terser configuration.outputkey has been merged into theformatblock,because Terser requires either
formatoroutput(not both).format.preamble.Updated
terser()configuration: