From 5bc8487b8edcb4f030f6edb4a6beabd2574d0ad5 Mon Sep 17 00:00:00 2001 From: Mark Date: Sun, 5 Apr 2020 14:31:47 -0400 Subject: [PATCH] Replace uglify-es with terser --- package-lock.json | 81 +++++++++++++++++++++++++++++++++-------------- package.json | 7 ++-- rollup.config.js | 11 ++++++- 3 files changed, 70 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6b68d89..a567da6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4711,6 +4711,27 @@ "html-escaper": "^2.0.0" } }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -7113,6 +7134,19 @@ "fsevents": "~2.1.2" } }, + "rollup-plugin-terser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.0.tgz", + "integrity": "sha512-XGMJihTIO3eIBsVGq7jiNYOdDMb3pVxuzY0uhOE/FM4x/u9nQgr3+McsjzqBn3QfHIpNSZmFnpoKAwHBEcsT7g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "jest-worker": "^24.9.0", + "rollup-pluginutils": "^2.8.2", + "serialize-javascript": "^2.1.2", + "terser": "^4.6.2" + } + }, "rollup-plugin-typescript2": { "version": "0.27.0", "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.27.0.tgz", @@ -7139,6 +7173,23 @@ } } }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } + } + }, "run-async": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", @@ -7193,6 +7244,12 @@ "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", "dev": true }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", + "dev": true + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -7980,30 +8037,6 @@ "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "dev": true }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "dev": true, - "requires": { - "commander": "~2.13.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, "ultron": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", diff --git a/package.json b/package.json index 15a58dd..7bccb93 100644 --- a/package.json +++ b/package.json @@ -63,17 +63,16 @@ "prettier": "^2.0.2", "pretty-quick": "^2.0.1", "rollup": "^2.3.3", + "rollup-plugin-terser": "^5.3.0", "rollup-plugin-typescript2": "^0.27.0", "sinon": "^9.0.1", - "typescript": "^3.7.2", - "uglify-es": "^3.3.9" + "typescript": "^3.7.2" }, "scripts": { "test": "karma start karma.conf.js && npm run lint", "test-server": "karma start karma.conf.js --single-run=false", "preversion": "npm test", - "minify": "uglifyjs dist/router-component.js -o dist/router-component.min.js", - "build": "rm -rf dist/* && rollup -c && npm run minify && npm run banner", + "build": "rm -rf dist/* && rollup -c && npm run banner", "banner": "banner-cli dist/**/*.js", "start": "rollup -c --watch", "lint": "eslint '**/*.{js,ts}'", diff --git a/rollup.config.js b/rollup.config.js index 1c6de0c..b1fb905 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,5 +1,6 @@ import typescript from 'rollup-plugin-typescript2'; import resolve from '@rollup/plugin-node-resolve'; +import { terser } from 'rollup-plugin-terser'; export default { input: 'src/router-component.ts', @@ -13,7 +14,15 @@ export default { file: 'dist/router-component.js', }, ], - plugins: [resolve(), typescript()], + plugins: [ + resolve(), + typescript(), + !process.env.ROLLUP_WATCH && + terser({ + compress: true, + mangle: true, + }), + ], watch: { include: 'src/**', },