From bc6fccfc947197e32163cf49c0a464e630cd9ace Mon Sep 17 00:00:00 2001 From: Jonathan Budzenski Date: Mon, 7 Mar 2022 12:43:49 -0600 Subject: [PATCH 1/2] [build] Up compression quality --- packages/kbn-babel-preset/node_preset.js | 2 +- packages/kbn-babel-preset/webpack_preset.js | 2 +- .../kbn-optimizer/src/worker/webpack.config.ts | 5 ++++- .../tasks/generate_packages_optimized_assets.ts | 15 ++++++++++++--- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/packages/kbn-babel-preset/node_preset.js b/packages/kbn-babel-preset/node_preset.js index 1c74d67716331..b69c59f5e2cc5 100644 --- a/packages/kbn-babel-preset/node_preset.js +++ b/packages/kbn-babel-preset/node_preset.js @@ -31,7 +31,7 @@ module.exports = (_, options = {}) => { // Because of that we should use for that value the same version we install // in the package.json in order to have the same polyfills between the environment // and the tests - corejs: '3.2.1', + corejs: '3.21.1', bugfixes: true, ...(options['@babel/preset-env'] || {}), diff --git a/packages/kbn-babel-preset/webpack_preset.js b/packages/kbn-babel-preset/webpack_preset.js index ea49c406d50f8..398124b5e9f71 100644 --- a/packages/kbn-babel-preset/webpack_preset.js +++ b/packages/kbn-babel-preset/webpack_preset.js @@ -18,7 +18,7 @@ module.exports = () => { modules: false, // Please read the explanation for this // in node_preset.js - corejs: '3.2.1', + corejs: '3.21.1', bugfixes: true, }, ], diff --git a/packages/kbn-optimizer/src/worker/webpack.config.ts b/packages/kbn-optimizer/src/worker/webpack.config.ts index 9454456a35c9a..fe4b04548244a 100644 --- a/packages/kbn-optimizer/src/worker/webpack.config.ts +++ b/packages/kbn-optimizer/src/worker/webpack.config.ts @@ -266,6 +266,9 @@ export function getWebpackConfig(bundle: Bundle, bundleRefs: BundleRefs, worker: filename: '[path].br', test: /\.(js|css)$/, cache: false, + compressionOptions: { + level: 11, + }, }), new CompressionPlugin({ algorithm: 'gzip', @@ -283,7 +286,7 @@ export function getWebpackConfig(bundle: Bundle, bundleRefs: BundleRefs, worker: extractComments: false, parallel: false, terserOptions: { - compress: true, + compress: { passes: 2 }, keep_classnames: true, mangle: true, }, diff --git a/src/dev/build/tasks/generate_packages_optimized_assets.ts b/src/dev/build/tasks/generate_packages_optimized_assets.ts index 982aedb9cfa2d..c8f215ad7632b 100644 --- a/src/dev/build/tasks/generate_packages_optimized_assets.ts +++ b/src/dev/build/tasks/generate_packages_optimized_assets.ts @@ -24,6 +24,7 @@ import terser from 'terser'; import vfs from 'vinyl-fs'; import globby from 'globby'; import del from 'del'; +import zlib from 'zlib'; import { Task, write } from '../lib'; @@ -55,21 +56,29 @@ async function optimizeAssets(log: ToolingLog, assetDir: string) { log.debug('Minify JS'); await asyncPipeline( vfs.src(['**/*.js'], { cwd: assetDir }), - gulpTerser({ compress: true, mangle: true }, terser.minify), + gulpTerser({ compress: { passes: 2 }, mangle: true }, terser.minify), vfs.dest(assetDir) ); log.debug('Brotli compress'); await asyncPipeline( vfs.src(['**/*.{js,css}'], { cwd: assetDir }), - gulpBrotli(), + gulpBrotli({ + params: { + [zlib.constants.BROTLI_PARAM_QUALITY]: zlib.constants.BROTLI_MAX_QUALITY, + }, + }), vfs.dest(assetDir) ); log.debug('GZip compress'); await asyncPipeline( vfs.src(['**/*.{js,css}'], { cwd: assetDir }), - gulpGzip(), + gulpGzip({ + gzipOptions: { + level: 9, + }, + }), vfs.dest(assetDir) ); } finally { From 2b5ab5c28f81486dd16681d8bf59faaf816d7ec4 Mon Sep 17 00:00:00 2001 From: Jonathan Budzenski Date: Mon, 7 Mar 2022 14:45:06 -0600 Subject: [PATCH 2/2] update snapshot --- .../basic_optimization.test.ts.snap | 147 ++++++++---------- 1 file changed, 69 insertions(+), 78 deletions(-) diff --git a/packages/kbn-optimizer/src/integration_tests/__snapshots__/basic_optimization.test.ts.snap b/packages/kbn-optimizer/src/integration_tests/__snapshots__/basic_optimization.test.ts.snap index ddcdd980153fb..52a183bc04b45 100644 --- a/packages/kbn-optimizer/src/integration_tests/__snapshots__/basic_optimization.test.ts.snap +++ b/packages/kbn-optimizer/src/integration_tests/__snapshots__/basic_optimization.test.ts.snap @@ -214,14 +214,7 @@ exports[`prepares assets for distribution: bar bundle 1`] = ` function (e, n, t) { \\"use strict\\"; var r, - o = function () { - return ( - void 0 === r && - (r = Boolean(window && document && document.all && !window.atob)), - r - ); - }, - i = (function () { + o = (function () { var e = {}; return function (n) { if (void 0 === e[n]) { @@ -240,37 +233,37 @@ exports[`prepares assets for distribution: bar bundle 1`] = ` return e[n]; }; })(), - a = []; + i = []; function c(e) { - for (var n = -1, t = 0; t < a.length; t++) - if (a[t].identifier === e) { + for (var n = -1, t = 0; t < i.length; t++) + if (i[t].identifier === e) { n = t; break; } return n; } - function u(e, n) { + function a(e, n) { for (var t = {}, r = [], o = 0; o < e.length; o++) { - var i = e[o], - u = n.base ? i[0] + n.base : i[0], + var a = e[o], + u = n.base ? a[0] + n.base : a[0], s = t[u] || 0, f = \\"\\".concat(u, \\" \\").concat(s); t[u] = s + 1; var l = c(f), - d = { css: i[1], media: i[2], sourceMap: i[3] }; + d = { css: a[1], media: a[2], sourceMap: a[3] }; -1 !== l - ? (a[l].references++, a[l].updater(d)) - : a.push({ identifier: f, updater: h(d, n), references: 1 }), + ? (i[l].references++, i[l].updater(d)) + : i.push({ identifier: f, updater: v(d, n), references: 1 }), r.push(f); } return r; } - function s(e) { + function u(e) { var n = document.createElement(\\"style\\"), r = e.attributes || {}; if (void 0 === r.nonce) { - var o = t.nc; - o && (r.nonce = o); + var i = t.nc; + i && (r.nonce = i); } if ( (Object.keys(r).forEach(function (e) { @@ -280,36 +273,36 @@ exports[`prepares assets for distribution: bar bundle 1`] = ` ) e.insert(n); else { - var a = i(e.insert || \\"head\\"); - if (!a) + var c = o(e.insert || \\"head\\"); + if (!c) throw new Error( \\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\\" ); - a.appendChild(n); + c.appendChild(n); } return n; } - var f, - l = - ((f = []), + var s, + f = + ((s = []), function (e, n) { - return (f[e] = n), f.filter(Boolean).join(\\"\\\\n\\"); + return (s[e] = n), s.filter(Boolean).join(\\"\\\\n\\"); }); - function d(e, n, t, r) { + function l(e, n, t, r) { var o = t ? \\"\\" : r.media ? \\"@media \\".concat(r.media, \\" {\\").concat(r.css, \\"}\\") : r.css; - if (e.styleSheet) e.styleSheet.cssText = l(n, o); + if (e.styleSheet) e.styleSheet.cssText = f(n, o); else { var i = document.createTextNode(o), - a = e.childNodes; - a[n] && e.removeChild(a[n]), - a.length ? e.insertBefore(i, a[n]) : e.appendChild(i); + c = e.childNodes; + c[n] && e.removeChild(c[n]), + c.length ? e.insertBefore(i, c[n]) : e.appendChild(i); } } - function p(e, n, t) { + function d(e, n, t) { var r = t.css, o = t.media, i = t.sourceMap; @@ -329,18 +322,18 @@ exports[`prepares assets for distribution: bar bundle 1`] = ` e.appendChild(document.createTextNode(r)); } } - var v = null, + var p = null, b = 0; - function h(e, n) { + function v(e, n) { var t, r, o; if (n.singleton) { var i = b++; - (t = v || (v = s(n))), - (r = d.bind(null, t, i, !1)), - (o = d.bind(null, t, i, !0)); + (t = p || (p = u(n))), + (r = l.bind(null, t, i, !1)), + (o = l.bind(null, t, i, !0)); } else - (t = s(n)), - (r = p.bind(null, t, n)), + (t = u(n)), + (r = d.bind(null, t, n)), (o = function () { !(function (e) { if (null === e.parentNode) return !1; @@ -365,8 +358,11 @@ exports[`prepares assets for distribution: bar bundle 1`] = ` e.exports = function (e, n) { (n = n || {}).singleton || \\"boolean\\" == typeof n.singleton || - (n.singleton = o()); - var t = u((e = e || []), n); + (n.singleton = + (void 0 === r && + (r = Boolean(window && document && document.all && !window.atob)), + r)); + var t = a((e = e || []), n); return function (e) { if ( ((e = e || []), @@ -374,13 +370,13 @@ exports[`prepares assets for distribution: bar bundle 1`] = ` ) { for (var r = 0; r < t.length; r++) { var o = c(t[r]); - a[o].references--; + i[o].references--; } - for (var i = u(e, n), s = 0; s < t.length; s++) { + for (var u = a(e, n), s = 0; s < t.length; s++) { var f = c(t[s]); - 0 === a[f].references && (a[f].updater(), a.splice(f, 1)); + 0 === i[f].references && (i[f].updater(), i.splice(f, 1)); } - t = i; + t = u; } }; }; @@ -393,27 +389,29 @@ exports[`prepares assets for distribution: bar bundle 1`] = ` (n.toString = function () { return this.map(function (n) { var t = (function (e, n) { - var t = e[1] || \\"\\", - r = e[3]; - if (!r) return t; + var t, + r, + o, + i = e[1] || \\"\\", + c = e[3]; + if (!c) return i; if (n && \\"function\\" == typeof btoa) { - var o = - ((a = r), - (c = btoa(unescape(encodeURIComponent(JSON.stringify(a))))), - (u = + var a = + ((t = c), + (r = btoa(unescape(encodeURIComponent(JSON.stringify(t))))), + (o = \\"sourceMappingURL=data:application/json;charset=utf-8;base64,\\".concat( - c + r )), - \\"/*# \\".concat(u, \\" */\\")), - i = r.sources.map(function (e) { + \\"/*# \\".concat(o, \\" */\\")), + u = c.sources.map(function (e) { return \\"/*# sourceURL=\\" - .concat(r.sourceRoot || \\"\\") + .concat(c.sourceRoot || \\"\\") .concat(e, \\" */\\"); }); - return [t].concat(i).concat([o]).join(\\"\\\\n\\"); + return [i].concat(u).concat([a]).join(\\"\\\\n\\"); } - var a, c, u; - return [t].join(\\"\\\\n\\"); + return [i].join(\\"\\\\n\\"); })(n, e); return n[2] ? \\"@media \\".concat(n[2], \\" {\\").concat(t, \\"}\\") : t; }).join(\\"\\"); @@ -423,11 +421,11 @@ exports[`prepares assets for distribution: bar bundle 1`] = ` var o = {}; if (r) for (var i = 0; i < this.length; i++) { - var a = this[i][0]; - null != a && (o[a] = !0); + var c = this[i][0]; + null != c && (o[c] = !0); } - for (var c = 0; c < e.length; c++) { - var u = [].concat(e[c]); + for (var a = 0; a < e.length; a++) { + var u = [].concat(e[a]); (r && o[u[0]]) || (t && (u[2] @@ -464,9 +462,7 @@ exports[`prepares assets for distribution: bar bundle 1`] = ` o = t(7); \\"string\\" == typeof (o = o.__esModule ? o.default : o) && (o = [[e.i, o, \\"\\"]]); - var i = { insert: \\"head\\", singleton: !1 }; - r(o, i); - e.exports = o.locals || {}; + r(o, { insert: \\"head\\", singleton: !1 }), (e.exports = o.locals || {}); }, function (e, n, t) { (n = t(1)(!1)).push([ @@ -481,9 +477,7 @@ exports[`prepares assets for distribution: bar bundle 1`] = ` o = t(9); \\"string\\" == typeof (o = o.__esModule ? o.default : o) && (o = [[e.i, o, \\"\\"]]); - var i = { insert: \\"head\\", singleton: !1 }; - r(o, i); - e.exports = o.locals || {}; + r(o, { insert: \\"head\\", singleton: !1 }), (e.exports = o.locals || {}); }, function (e, n, t) { (n = t(1)(!1)).push([ @@ -506,9 +500,7 @@ exports[`prepares assets for distribution: bar bundle 1`] = ` o = t(12); \\"string\\" == typeof (o = o.__esModule ? o.default : o) && (o = [[e.i, o, \\"\\"]]); - var i = { insert: \\"head\\", singleton: !1 }; - r(o, i); - e.exports = o.locals || {}; + r(o, { insert: \\"head\\", singleton: !1 }), (e.exports = o.locals || {}); }, function (e, n, t) { (n = t(1)(!1)).push([e.i, \\"body{color:green}\\\\n\\", \\"\\"]), (e.exports = n); @@ -518,9 +510,7 @@ exports[`prepares assets for distribution: bar bundle 1`] = ` o = t(14); \\"string\\" == typeof (o = o.__esModule ? o.default : o) && (o = [[e.i, o, \\"\\"]]); - var i = { insert: \\"head\\", singleton: !1 }; - r(o, i); - e.exports = o.locals || {}; + r(o, { insert: \\"head\\", singleton: !1 }), (e.exports = o.locals || {}); }, function (e, n, t) { (n = t(1)(!1)).push([e.i, \\"body{color:green}\\\\n\\", \\"\\"]), (e.exports = n); @@ -533,8 +523,9 @@ exports[`prepares assets for distribution: bar bundle 1`] = ` }), t.d(n, \\"fooLibFn\\", function () { return r.fooLibFn; - }); - t(5), t(10); + }), + t(5), + t(10); var r = t(2); function o() { return \\"bar\\";