diff --git a/.changeset/new-avocados-chew.md b/.changeset/new-avocados-chew.md new file mode 100644 index 000000000..8c1833e45 --- /dev/null +++ b/.changeset/new-avocados-chew.md @@ -0,0 +1,5 @@ +--- +'modular-scripts': major +--- + +Upgrade html-minifier-terset to v6. diff --git a/package.json b/package.json index 2c07e1da8..e3ce047c0 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "@types/find-up": "4.0.0", "@types/fs-extra": "9.0.13", "@types/global-modules": "^2.0.0", + "@types/html-minifier-terser": "6.1.0", "@types/is-ci": "3.0.0", "@types/jest": "26.0.24", "@types/mime": "^2.0.3", diff --git a/packages/modular-scripts/package.json b/packages/modular-scripts/package.json index 10ca314f1..04ee8895a 100644 --- a/packages/modular-scripts/package.json +++ b/packages/modular-scripts/package.json @@ -62,6 +62,7 @@ "globby": "11.0.4", "gzip-size": "6.0.0", "html-webpack-plugin": "4.5.2", + "html-minifier-terser": "6.1.0", "is-ci": "2.0.0", "is-root": "2.1.0", "jest": "26.6.3", diff --git a/packages/modular-scripts/src/esbuild-scripts/build/index.ts b/packages/modular-scripts/src/esbuild-scripts/build/index.ts index 4b796aceb..cc43564d0 100644 --- a/packages/modular-scripts/src/esbuild-scripts/build/index.ts +++ b/packages/modular-scripts/src/esbuild-scripts/build/index.ts @@ -55,21 +55,21 @@ export default async function build(target: string, paths: Paths) { } const html = await createIndex(paths, result, env.raw, false); - await fs.writeFile( - path.join(paths.appBuild, 'index.html'), - minimize.minify(html, { - html5: true, - collapseBooleanAttributes: true, - collapseWhitespace: true, - collapseInlineTagWhitespace: true, - decodeEntities: true, - minifyCSS: true, - minifyJS: true, - removeAttributeQuotes: false, - removeComments: true, - removeTagWhitespace: true, - }), - ); + + const minifiedCode = await minimize.minify(html, { + html5: true, + collapseBooleanAttributes: true, + collapseWhitespace: true, + collapseInlineTagWhitespace: true, + decodeEntities: true, + minifyCSS: true, + minifyJS: true, + removeAttributeQuotes: false, + removeComments: true, + removeTagWhitespace: true, + }); + + await fs.writeFile(path.join(paths.appBuild, 'index.html'), minifiedCode); return result; } diff --git a/yarn.lock b/yarn.lock index 46a4fbcf1..26d80e523 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2545,6 +2545,11 @@ dependencies: "@types/node" "*" +"@types/html-minifier-terser@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + "@types/html-minifier-terser@^5.0.0": version "5.1.2" resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" @@ -3204,7 +3209,7 @@ acorn@^7.1.1, acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.4, acorn@^8.4.1: +acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0: version "8.7.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== @@ -4357,6 +4362,13 @@ clean-css@^4.2.3: dependencies: source-map "~0.6.0" +clean-css@^5.2.2: + version "5.3.0" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.0.tgz#ad3d8238d5f3549e83d5f87205189494bc7cbb59" + integrity sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ== + dependencies: + source-map "~0.6.0" + clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" @@ -7325,6 +7337,19 @@ 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@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + 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" @@ -12601,6 +12626,16 @@ terser@^4.1.2, terser@^4.6.3: source-map "~0.6.1" source-map-support "~0.5.12" +terser@^5.10.0: + version "5.12.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.12.1.tgz#4cf2ebed1f5bceef5c83b9f60104ac4a78b49e9c" + integrity sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ== + dependencies: + acorn "^8.5.0" + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.20" + terser@^5.3.4: version "5.10.0" resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc"