From abee8b04760fadefda53ed0aade2e76af642a6b7 Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Sat, 28 Dec 2013 23:41:54 -0700 Subject: [PATCH 1/2] Minify both before and after browserify --- grunt/config/browserify.js | 20 +++++++++++++++++--- package.json | 29 +++++++++++++++-------------- 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/grunt/config/browserify.js b/grunt/config/browserify.js index 57ff1b25d5b1..540e3baf5c6e 100644 --- a/grunt/config/browserify.js +++ b/grunt/config/browserify.js @@ -5,6 +5,7 @@ var envify = require('envify/custom'); var grunt = require('grunt'); +var through = require('through'); var UglifyJS = require('uglify-js'); var SIMPLE_TEMPLATE = @@ -32,7 +33,20 @@ var LICENSE_TEMPLATE = */'; function minify(src) { - return UglifyJS.minify(src, { fromString: true }).code; + return UglifyJS.minify(src, { + fromString: true, + mangle: {toplevel: true} + }).code; +} + +function minifyTransform(file) { + var src = ''; + return through(function write(buf) { + src += buf; + }, function end() { + this.queue(minify(src)); + this.queue(null); + }); } // TODO: move this out to another build step maybe. @@ -67,7 +81,7 @@ var basic = { var min = grunt.util._.merge({}, basic, { outfile: './build/react.min.js', debug: false, - transforms: [envify({NODE_ENV: 'production'})], + transforms: [envify({NODE_ENV: 'production'}), minifyTransform], after: [minify, bannerify] }); @@ -96,7 +110,7 @@ var addons = { var addonsMin = grunt.util._.merge({}, addons, { outfile: './build/react-with-addons.min.js', debug: false, - transforms: [envify({NODE_ENV: 'production'})], + transforms: [envify({NODE_ENV: 'production'}), minifyTransform], after: [minify, bannerify] }); diff --git a/package.json b/package.json index 0ecb4b0863ea..0c67bbf9fb6f 100644 --- a/package.json +++ b/package.json @@ -39,29 +39,30 @@ }, "devDependencies": { "browserify": "~2.36.1", + "coverify": "~0.1.1", "envify": "~1.0.1", - "populist": "~0.1.6", - "grunt-cli": "~0.1.9", + "es5-shim": "~2.1.0", "grunt": "~0.4.1", + "grunt-cli": "~0.1.9", + "grunt-compare-size": "~0.4.0", + "grunt-complexity": "~0.1.3", + "grunt-contrib-clean": "~0.5.0", + "grunt-contrib-compress": "~0.5.1", + "grunt-contrib-connect": "~0.5.0", "grunt-contrib-copy": "~0.4.1", "grunt-contrib-jshint": "~0.7.2", + "gzip-js": "~0.3.2", + "jasmine-tapreporter": "~0.2.2", "optimist": "~0.6.0", "phantomjs": "~1.9", + "populist": "~0.1.6", "recast": "~0.5.6", + "sauce-tunnel": "~1.1.0", "semver": "~2.2.1", - "uglify-js": "~2.4.0", - "grunt-contrib-clean": "~0.5.0", - "grunt-compare-size": "~0.4.0", - "gzip-js": "~0.3.2", + "through": "~2.3.4", "tmp": "~0.0.18", - "grunt-contrib-compress": "~0.5.1", - "jasmine-tapreporter": "~0.2.2", - "grunt-contrib-connect": "~0.5.0", - "es5-shim": "~2.1.0", - "wd": "~0.2.6", - "sauce-tunnel": "~1.1.0", - "coverify": "~0.1.1", - "grunt-complexity": "~0.1.3" + "uglify-js": "~2.4.0", + "wd": "~0.2.6" }, "engines": { "node": ">=0.10.0" From 76c9d8465e5b4803b4804f52003bd62e1d09b41f Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Sun, 29 Dec 2013 00:03:26 -0700 Subject: [PATCH 2/2] Switch to using uglifyify --- grunt/config/browserify.js | 21 ++++----------------- package.json | 2 +- 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/grunt/config/browserify.js b/grunt/config/browserify.js index 540e3baf5c6e..ffe7b2df608f 100644 --- a/grunt/config/browserify.js +++ b/grunt/config/browserify.js @@ -5,8 +5,8 @@ var envify = require('envify/custom'); var grunt = require('grunt'); -var through = require('through'); var UglifyJS = require('uglify-js'); +var uglifyify = require('uglifyify'); var SIMPLE_TEMPLATE = '/**\n\ @@ -33,20 +33,7 @@ var LICENSE_TEMPLATE = */'; function minify(src) { - return UglifyJS.minify(src, { - fromString: true, - mangle: {toplevel: true} - }).code; -} - -function minifyTransform(file) { - var src = ''; - return through(function write(buf) { - src += buf; - }, function end() { - this.queue(minify(src)); - this.queue(null); - }); + return UglifyJS.minify(src, { fromString: true }).code; } // TODO: move this out to another build step maybe. @@ -81,7 +68,7 @@ var basic = { var min = grunt.util._.merge({}, basic, { outfile: './build/react.min.js', debug: false, - transforms: [envify({NODE_ENV: 'production'}), minifyTransform], + transforms: [envify({NODE_ENV: 'production'}), uglifyify], after: [minify, bannerify] }); @@ -110,7 +97,7 @@ var addons = { var addonsMin = grunt.util._.merge({}, addons, { outfile: './build/react-with-addons.min.js', debug: false, - transforms: [envify({NODE_ENV: 'production'}), minifyTransform], + transforms: [envify({NODE_ENV: 'production'}), uglifyify], after: [minify, bannerify] }); diff --git a/package.json b/package.json index 0c67bbf9fb6f..beddd4a05d7b 100644 --- a/package.json +++ b/package.json @@ -59,9 +59,9 @@ "recast": "~0.5.6", "sauce-tunnel": "~1.1.0", "semver": "~2.2.1", - "through": "~2.3.4", "tmp": "~0.0.18", "uglify-js": "~2.4.0", + "uglifyify": "~1.0.1", "wd": "~0.2.6" }, "engines": {