Update to Terser 5 (#16194)
Co-authored-by: Tim Neutkens <timneutkens@me.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
parent
aec37fa8f1
commit
feeb941dc6
6 changed files with 33 additions and 49 deletions
File diff suppressed because one or more lines are too long
|
@ -6,7 +6,6 @@ const {
|
|||
|
||||
const buildTerserOptions = ({
|
||||
ecma,
|
||||
warnings,
|
||||
parse = {},
|
||||
compress = {},
|
||||
mangle,
|
||||
|
@ -43,8 +42,7 @@ const buildTerserOptions = ({
|
|||
module,
|
||||
nameCache,
|
||||
safari10,
|
||||
toplevel,
|
||||
warnings
|
||||
toplevel
|
||||
});
|
||||
|
||||
function isObject(value) {
|
||||
|
@ -133,9 +131,9 @@ const buildComments = (options, terserOptions, extractedComments) => {
|
|||
};
|
||||
};
|
||||
|
||||
const minify = options => {
|
||||
async function minify(options) {
|
||||
const {
|
||||
file,
|
||||
name,
|
||||
input,
|
||||
inputSourceMap,
|
||||
minify: minifyFn
|
||||
|
@ -143,7 +141,7 @@ const minify = options => {
|
|||
|
||||
if (minifyFn) {
|
||||
return minifyFn({
|
||||
[file]: input
|
||||
[name]: input
|
||||
}, inputSourceMap);
|
||||
} // Copy terser options
|
||||
|
||||
|
@ -158,35 +156,20 @@ const minify = options => {
|
|||
|
||||
const extractedComments = [];
|
||||
terserOptions.output.comments = buildComments(options, terserOptions, extractedComments);
|
||||
const {
|
||||
error,
|
||||
map,
|
||||
code,
|
||||
warnings
|
||||
} = terserMinify({
|
||||
[file]: input
|
||||
const result = await terserMinify({
|
||||
[name]: input
|
||||
}, terserOptions);
|
||||
return {
|
||||
error,
|
||||
map,
|
||||
code,
|
||||
warnings,
|
||||
return { ...result,
|
||||
extractedComments
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
function transform(options) {
|
||||
// 'use strict' => this === undefined (Clean Scope)
|
||||
// Safer for possible security issues, albeit not critical at all here
|
||||
// eslint-disable-next-line no-new-func, no-param-reassign
|
||||
options = new Function('exports', 'require', 'module', '__filename', '__dirname', `'use strict'\nreturn ${options}`)(exports, require, module, __filename, __dirname);
|
||||
const result = minify(options);
|
||||
|
||||
if (result.error) {
|
||||
throw result.error;
|
||||
} else {
|
||||
return result;
|
||||
}
|
||||
return minify(options);
|
||||
}
|
||||
|
||||
module.exports.minify = minify;
|
||||
|
|
2
packages/next/compiled/terser/bundle.min.js
vendored
2
packages/next/compiled/terser/bundle.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -211,8 +211,8 @@
|
|||
"string-hash": "1.1.3",
|
||||
"strip-ansi": "6.0.0",
|
||||
"taskr": "1.1.0",
|
||||
"terser": "4.4.2",
|
||||
"terser-webpack-plugin": "3.0.8",
|
||||
"terser": "5.1.0",
|
||||
"terser-webpack-plugin": "4.1.0",
|
||||
"text-table": "0.2.0",
|
||||
"thread-loader": "2.1.3",
|
||||
"typescript": "3.8.3",
|
||||
|
|
|
@ -80,7 +80,7 @@ describe('Production response size', () => {
|
|||
)
|
||||
|
||||
// These numbers are without gzip compression!
|
||||
const delta = responseSizesBytes - 277 * 1024
|
||||
const delta = responseSizesBytes - 276 * 1024
|
||||
expect(delta).toBeLessThanOrEqual(1024) // don't increase size more than 1kb
|
||||
expect(delta).toBeGreaterThanOrEqual(-1024) // don't decrease size more than 1kb without updating target
|
||||
})
|
||||
|
@ -100,7 +100,7 @@ describe('Production response size', () => {
|
|||
)
|
||||
|
||||
// These numbers are without gzip compression!
|
||||
const delta = responseSizesBytes - 167 * 1024
|
||||
const delta = responseSizesBytes - 166 * 1024
|
||||
expect(delta).toBeLessThanOrEqual(1024) // don't increase size more than 1kb
|
||||
expect(delta).toBeGreaterThanOrEqual(-1024) // don't decrease size more than 1kb without updating target
|
||||
})
|
||||
|
|
35
yarn.lock
35
yarn.lock
|
@ -10351,10 +10351,10 @@ jest-worker@^26.0.0:
|
|||
merge-stream "^2.0.0"
|
||||
supports-color "^7.0.0"
|
||||
|
||||
jest-worker@^26.1.0:
|
||||
version "26.2.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.2.1.tgz#5d630ab93f666b53f911615bc13e662b382bd513"
|
||||
integrity sha512-+XcGMMJDTeEGncRb5M5Zq9P7K4sQ1sirhjdOxsN1462h6lFo9w59bl2LVQmdGEEeU3m+maZCkS2Tcc9SfCHO4A==
|
||||
jest-worker@^26.3.0:
|
||||
version "26.3.0"
|
||||
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.3.0.tgz#7c8a97e4f4364b4f05ed8bca8ca0c24de091871f"
|
||||
integrity sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
merge-stream "^2.0.0"
|
||||
|
@ -16400,19 +16400,19 @@ temp@^0.8.1:
|
|||
dependencies:
|
||||
rimraf "~2.6.2"
|
||||
|
||||
terser-webpack-plugin@3.0.8:
|
||||
version "3.0.8"
|
||||
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-3.0.8.tgz#d1a53442a143e09e00c880e8d77c1e79cb05318b"
|
||||
integrity sha512-ygwK8TYMRTYtSyLB2Mhnt90guQh989CIq/mL/2apwi6rA15Xys4ydNUiH4ah6EZCfQxSk26ZFQilZ4IQ6IZw6A==
|
||||
terser-webpack-plugin@4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.1.0.tgz#6e9d6ae4e1a900d88ddce8da6a47507ea61f44bc"
|
||||
integrity sha512-0ZWDPIP8BtEDZdChbufcXUigOYk6dOX/P/X0hWxqDDcVAQLb8Yy/0FAaemSfax3PAA67+DJR778oz8qVbmy4hA==
|
||||
dependencies:
|
||||
cacache "^15.0.5"
|
||||
find-cache-dir "^3.3.1"
|
||||
jest-worker "^26.1.0"
|
||||
jest-worker "^26.3.0"
|
||||
p-limit "^3.0.2"
|
||||
schema-utils "^2.6.6"
|
||||
serialize-javascript "^4.0.0"
|
||||
source-map "^0.6.1"
|
||||
terser "^4.8.0"
|
||||
terser "^5.0.0"
|
||||
webpack-sources "^1.4.3"
|
||||
|
||||
terser-webpack-plugin@^1.4.3:
|
||||
|
@ -16430,18 +16430,19 @@ terser-webpack-plugin@^1.4.3:
|
|||
webpack-sources "^1.4.0"
|
||||
worker-farm "^1.7.0"
|
||||
|
||||
terser@4.4.2:
|
||||
version "4.4.2"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-4.4.2.tgz#448fffad0245f4c8a277ce89788b458bfd7706e8"
|
||||
terser@4.8.0, terser@^4.1.2:
|
||||
version "4.8.0"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
|
||||
integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
|
||||
dependencies:
|
||||
commander "^2.20.0"
|
||||
source-map "~0.6.1"
|
||||
source-map-support "~0.5.12"
|
||||
|
||||
terser@4.8.0, terser@^4.1.2, terser@^4.8.0:
|
||||
version "4.8.0"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
|
||||
integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
|
||||
terser@5.1.0, terser@^5.0.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-5.1.0.tgz#1f4ab81c8619654fdded51f3157b001e1747281d"
|
||||
integrity sha512-pwC1Jbzahz1ZPU87NQ8B3g5pKbhyJSiHih4gLH6WZiPU8mmS1IlGbB0A2Nuvkj/LCNsgIKctg6GkYwWCeTvXZQ==
|
||||
dependencies:
|
||||
commander "^2.20.0"
|
||||
source-map "~0.6.1"
|
||||
|
|
Loading…
Reference in a new issue