From 3ea96b8e00dff8e55ef1ce465a1395ff1e4cea43 Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Wed, 29 Sep 2021 12:57:11 +0300 Subject: [PATCH] chore: upgrade Terser-related dependencies (#5609) --- packages/docusaurus-plugin-pwa/package.json | 2 +- packages/docusaurus/package.json | 5 ++- packages/docusaurus/src/client/serverEntry.js | 31 +++++------------ yarn.lock | 33 ++++++++++++------- 4 files changed, 33 insertions(+), 38 deletions(-) diff --git a/packages/docusaurus-plugin-pwa/package.json b/packages/docusaurus-plugin-pwa/package.json index f00115c466..ae815870cc 100644 --- a/packages/docusaurus-plugin-pwa/package.json +++ b/packages/docusaurus-plugin-pwa/package.json @@ -23,7 +23,7 @@ "babel-loader": "^8.2.2", "clsx": "^1.1.1", "core-js": "^2.6.5", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.2.4", "webpack": "^5.40.0", "webpack-merge": "^5.7.3", "workbox-build": "^6.1.1", diff --git a/packages/docusaurus/package.json b/packages/docusaurus/package.json index c488bdc019..87b6376958 100644 --- a/packages/docusaurus/package.json +++ b/packages/docusaurus/package.json @@ -41,7 +41,6 @@ "@types/react-dom": "^17.0.9", "@types/rtl-detect": "^1.0.0", "@types/serve-handler": "^6.1.1", - "@types/terser-webpack-plugin": "^5.2.0", "@types/webpack-bundle-analyzer": "^4.4.1", "tmp-promise": "^3.0.2" }, @@ -86,7 +85,7 @@ "fs-extra": "^10.0.0", "github-slugger": "^1.4.0", "globby": "^11.0.2", - "html-minifier-terser": "^5.1.1", + "html-minifier-terser": "^6.0.2", "html-tags": "^3.1.0", "html-webpack-plugin": "^5.3.2", "import-fresh": "^3.3.0", @@ -115,7 +114,7 @@ "shelljs": "^0.8.4", "std-env": "^2.2.1", "strip-ansi": "^6.0.0", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.2.4", "tslib": "^2.3.1", "update-notifier": "^5.1.0", "url-loader": "^4.1.1", diff --git a/packages/docusaurus/src/client/serverEntry.js b/packages/docusaurus/src/client/serverEntry.js index 362eb2c642..fe3a3decfc 100644 --- a/packages/docusaurus/src/client/serverEntry.js +++ b/packages/docusaurus/src/client/serverEntry.js @@ -129,9 +129,9 @@ async function doRender(locals) { version: packageJson.version, }); - // Minify html with https://github.com/DanielRuf/html-minifier-terser - function doMinify() { - return minify(renderedHtml, { + try { + // Minify html with https://github.com/DanielRuf/html-minifier-terser + return await minify(renderedHtml, { removeComments: true, removeRedundantAttributes: true, removeEmptyAttributes: true, @@ -140,27 +140,12 @@ async function doRender(locals) { useShortDoctype: true, minifyJS: true, }); - } - - // TODO this is a temporary error affecting only monorepos due to Terser 5 (async) being used by html-minifier-terser, - // instead of the expected Terser 4 (sync) - // TODO, remove this once we upgrade everything to Terser 5 (https://github.com/terser/html-minifier-terser/issues/46) - // See also - // - https://github.com/facebook/docusaurus/issues/3515 - // - https://github.com/terser/html-minifier-terser/issues/49 - try { - return doMinify(); } catch (e) { - if ( - e.message && - e.message.includes("Cannot read property 'replace' of undefined") - ) { - console.error( - chalk.red( - '\nDocusaurus user: you probably have this known error due to using a monorepo/workspace.\nWe have a workaround for you, please see https://github.com/facebook/docusaurus/issues/3515\n', - ), - ); - } + console.error( + chalk.red( + `Minification page with path "${locals.path}" failed because of following error:\n\n${e.stack}\n`, + ), + ); throw e; } } diff --git a/yarn.lock b/yarn.lock index 22e2edb9bd..6f9ed888f7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4531,13 +4531,6 @@ resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.7.tgz#545158342f949e8fd3bfd813224971ecddc3fac4" integrity sha512-0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ== -"@types/terser-webpack-plugin@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@types/terser-webpack-plugin/-/terser-webpack-plugin-5.2.0.tgz#6aaec696593216917f9f03266bed222f8253483b" - integrity sha512-iHDR2pRfFjGyDqCALX2tgUgFtGoQf2AJhKpC2XD1IMBQVJF2bny6WChGRDKj9eaZJl4F2RmvBhxJNtVPj7aTRw== - dependencies: - terser-webpack-plugin "*" - "@types/uglify-js@*": version "3.13.0" resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.0.tgz#1cad8df1fb0b143c5aba08de5712ea9d1ff71124" @@ -6220,7 +6213,7 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camel-case@^4.1.1: +camel-case@^4.1.1, camel-case@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== @@ -6914,6 +6907,11 @@ commander@^7.1.0, commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== +commander@^8.1.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.2.0.tgz#37fe2bde301d87d47a53adeff8b5915db1381ca8" + integrity sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA== + common-path-prefix@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-2.0.0.tgz#25b0265f318bf093a6ec630813aac97b29dea230" @@ -10759,7 +10757,7 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -html-minifier-terser@^5.0.1, html-minifier-terser@^5.1.1: +html-minifier-terser@^5.0.1: version "5.1.1" resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== @@ -10772,6 +10770,19 @@ html-minifier-terser@^5.0.1, html-minifier-terser@^5.1.1: relateurl "^0.2.7" terser "^4.6.3" +html-minifier-terser@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.0.2.tgz#14059ad64b69bf9f8b8a33f25b53411d8321e75d" + integrity sha512-AgYO3UGhMYQx2S/FBJT3EM0ZYcKmH6m9XL9c1v77BeK/tYJxGPxT1/AtsdUi4FcP8kZGmqqnItCcjFPcX9hk6A== + dependencies: + camel-case "^4.1.2" + clean-css "^5.1.5" + commander "^8.1.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.7.2" + html-tags@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" @@ -15294,7 +15305,7 @@ parallel-transform@^1.1.0, parallel-transform@^1.2.0: inherits "^2.0.3" readable-stream "^2.1.5" -param-case@^3.0.3: +param-case@^3.0.3, param-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== @@ -18998,7 +19009,7 @@ terminal-link@^2.0.0: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser-webpack-plugin@*, terser-webpack-plugin@^5.1.3: +terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.2.4: version "5.2.4" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz#ad1be7639b1cbe3ea49fab995cbe7224b31747a1" integrity sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==