From c2b0488885d8efcd1db0945ba3d0eded4e02823d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Fri, 1 Sep 2017 11:56:28 +0200 Subject: [PATCH] Minify with recent uglify-js and create prod source map. --- bin/build-js.js | 23 ++---- package-lock.json | 180 +++++++++++++++++----------------------------- package.json | 4 +- 3 files changed, 71 insertions(+), 136 deletions(-) diff --git a/bin/build-js.js b/bin/build-js.js index f2b448a74..6631b6c1c 100644 --- a/bin/build-js.js +++ b/bin/build-js.js @@ -2,13 +2,11 @@ var path = require('path') var fs = require('fs') var chalk = require('chalk') var mkdirp = require('mkdirp') -// var glob = require('glob') var babelify = require('babelify') var commonShakeify = require('common-shakeify') var packFlat = require('browser-pack-flat/plugin') -// var yoyoify = require('yo-yoify') var browserify = require('browserify') -// var exec = require('child_process').exec +var uglify = require('minify-stream') var exorcist = require('exorcist') var distPath = './dist' @@ -25,27 +23,14 @@ function buildUppyBundle (minify) { var b = browserify(src, { debug: true, standalone: 'Uppy' }) b.plugin(commonShakeify) b.plugin(packFlat) - if (minify) { - b.plugin('minifyify', { - map: bundleFile + '.map', - output: path.join(distPath, bundleFile + '.map'), - uglify: { - mangle: { - eval: true, - toplevel: true - }, - compress: { - toplevel: true - } - } - }) - } b.transform(babelify) b.on('error', handleErr) return new Promise(function (resolve, reject) { if (minify) { b.bundle() + .pipe(uglify()) + .pipe(exorcist(path.join(distPath, bundleFile + '.map'))) .pipe(fs.createWriteStream(path.join(distPath, bundleFile), 'utf8')) .on('error', handleErr) .on('finish', function () { @@ -54,7 +39,7 @@ function buildUppyBundle (minify) { }) } else { b.bundle() - .pipe(exorcist(path.join(distPath, 'uppy.js.map'))) + .pipe(exorcist(path.join(distPath, bundleFile + '.map'))) .pipe(fs.createWriteStream(path.join(distPath, bundleFile), 'utf8')) .on('error', handleErr) .on('finish', function () { diff --git a/package-lock.json b/package-lock.json index 1192ed1e8..8e96fb22f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -271,12 +271,6 @@ "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=", "dev": true }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, "array-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", @@ -2259,6 +2253,7 @@ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, + "optional": true, "requires": { "align-text": "0.1.4", "lazy-cache": "1.0.4" @@ -4692,6 +4687,25 @@ "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", "dev": true }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.2.11" + } + }, + "from2-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/from2-string/-/from2-string-1.1.0.tgz", + "integrity": "sha1-GCgrJ9CKJnyzAwzSuLSw8hKvdSo=", + "dev": true, + "requires": { + "from2": "2.3.0" + } + }, "fs-extra": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", @@ -7376,7 +7390,8 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true + "dev": true, + "optional": true }, "lcid": { "version": "1.0.0", @@ -7666,12 +7681,6 @@ "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", "dev": true }, - "lodash.bind": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", - "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=", - "dev": true - }, "lodash.clonedeep": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz", @@ -7688,18 +7697,6 @@ "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=", "dev": true }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true - }, - "lodash.foreach": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=", - "dev": true - }, "lodash.isarguments": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", @@ -8114,76 +8111,41 @@ "dom-walk": "0.1.1" } }, - "minifyify": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/minifyify/-/minifyify-7.3.3.tgz", - "integrity": "sha1-qUSt5ZuNqXPfRsgUtqTi8jek19Q=", + "minify-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minify-stream/-/minify-stream-1.1.0.tgz", + "integrity": "sha512-Y7bDc1y++oHPZBsz8GiS0E2M+O75OZXAKeHdG7eCcvXHS7fUKUSfUXK5iCKFtYZJaSTS+ircAnDUAhZKhHUjlA==", "dev": true, "requires": { - "concat-stream": "1.5.2", + "concat-stream": "1.6.0", "convert-source-map": "1.5.0", - "lodash.assign": "4.2.0", - "lodash.bind": "4.2.1", - "lodash.defaults": "4.2.0", - "lodash.foreach": "4.5.0", - "mkdirp": "0.5.1", - "source-map": "0.5.6", - "through": "2.3.8", - "tmp": "0.0.28", - "transform-filter": "0.1.1", - "uglify-js": "2.8.29" + "duplexify": "3.5.1", + "from2-string": "1.1.0", + "uglify-es": "3.1.2", + "xtend": "4.0.1" }, "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "dev": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" + "inherits": "2.0.3", + "readable-stream": "2.2.11", + "typedarray": "0.0.6" } }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "duplexify": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.1.tgz", + "integrity": "sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ==", "dev": true, "requires": { - "source-map": "0.5.6", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - } - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" + "end-of-stream": "1.0.0", + "inherits": "2.0.3", + "readable-stream": "2.2.11", + "stream-shift": "1.0.0" } } } @@ -8307,18 +8269,6 @@ } } }, - "multimatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", - "dev": true, - "requires": { - "array-differ": "1.0.0", - "array-union": "1.0.2", - "arrify": "1.0.1", - "minimatch": "3.0.4" - } - }, "mute-stream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", @@ -10712,6 +10662,7 @@ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, + "optional": true, "requires": { "align-text": "0.1.4" } @@ -12055,15 +12006,6 @@ } } }, - "tmp": { - "version": "0.0.28", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz", - "integrity": "sha1-Fyc1t/YU6nrzlmT6hM8N5OUV0SA=", - "dev": true, - "requires": { - "os-tmpdir": "1.0.2" - } - }, "tmpl": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", @@ -12267,16 +12209,6 @@ } } }, - "transform-filter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/transform-filter/-/transform-filter-0.1.1.tgz", - "integrity": "sha1-gG+FG25ECyN4j9OMoEMbUCAlulk=", - "dev": true, - "requires": { - "multimatch": "2.1.0", - "through": "2.3.8" - } - }, "tree-kill": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.1.0.tgz", @@ -12399,6 +12331,24 @@ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.12.tgz", "integrity": "sha1-BMgamb3V3FImPqKdJMa/jUgYpLs=" }, + "uglify-es": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.1.2.tgz", + "integrity": "sha512-ULYW1xj/yW0IAkLW1XzIXB3O888275E2/r4tFy83D9wPRKGlUjKWeQAZoyHXujr/fsHeh6QMlc1ayCE8kqnoaw==", + "dev": true, + "requires": { + "commander": "2.11.0", + "source-map": "0.5.6" + }, + "dependencies": { + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "dev": true + } + } + }, "uglify-to-browserify": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", diff --git a/package.json b/package.json index 407a27626..9e5b0817f 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "babel-preset-es2015": "6.24.0", "babel-register": "6.9.0", "babelify": "7.3.0", - "browser-pack-flat": "^2.5.0", + "browser-pack-flat": "^2.7.0", "browser-sync": "2.18.8", "browserify": "14.1.0", "chalk": "1.1.3", @@ -62,7 +62,7 @@ "isomorphic-fetch": "2.2.1", "jest": "^20.0.4", "lint-staged": "2.0.2", - "minifyify": "7.3.3", + "minify-stream": "^1.1.0", "mkdirp": "0.5.1", "multi-glob": "1.0.1", "next-update": "1.2.2",