From f214776a9711b5a59ee17afd80351ac13c5893a7 Mon Sep 17 00:00:00 2001 From: ShihChi Huang Date: Tue, 30 Dec 2014 22:57:47 -0800 Subject: [PATCH 1/2] use bundle-collapser to reduce browserified file size --- grunt/config/browserify.js | 3 +++ grunt/tasks/browserify.js | 3 +++ package.json | 1 + 3 files changed, 7 insertions(+) diff --git a/grunt/config/browserify.js b/grunt/config/browserify.js index 0288fa7515..d7730a48d1 100644 --- a/grunt/config/browserify.js +++ b/grunt/config/browserify.js @@ -9,6 +9,7 @@ var grunt = require('grunt'); var UglifyJS = require('uglify-js'); var uglifyify = require('uglifyify'); var derequire = require('derequire'); +var collapser = require('bundle-collapser/plugin'); var SIMPLE_TEMPLATE = '/**\n\ @@ -69,6 +70,7 @@ var min = { debug: false, standalone: 'React', transforms: [envify({NODE_ENV: 'production'}), uglifyify], + plugins: [collapser], after: [es3ify.transform, derequire, minify, bannerify] }; @@ -104,6 +106,7 @@ var addonsMin = { standalone: 'React', packageName: 'React (with addons)', transforms: [envify({NODE_ENV: 'production'}), uglifyify], + plugins: [collapser], after: [es3ify.transform, derequire, minify, bannerify] }; diff --git a/grunt/tasks/browserify.js b/grunt/tasks/browserify.js index 684c1ed8b0..060fe8f243 100644 --- a/grunt/tasks/browserify.js +++ b/grunt/tasks/browserify.js @@ -13,6 +13,7 @@ module.exports = function() { // grunt.config.requires('outfile'); // grunt.config.requires('entries'); config.transforms = config.transforms || []; + config.plugins = config.plugins || []; config.after = config.after || []; // create the bundle we'll work with @@ -31,6 +32,8 @@ module.exports = function() { bundle.transform({}, transform); }); + config.plugins.forEach(bundle.plugin, bundle); + // Actually bundle it up var _this = this; bundle.bundle(function(err, buf) { diff --git a/package.json b/package.json index e68ed8b5b4..f8a4bcfbf8 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "devDependencies": { "benchmark": "~1.0.0", "browserify": "^7.0.2", + "bundle-collapser": "^1.1.1", "coverify": "~1.0.4", "derequire": "^1.2.0", "envify": "^3.0.0", From 9bc19619366cb6e876bf14dc6bee038ddb6f6b86 Mon Sep 17 00:00:00 2001 From: ShihChi Huang Date: Mon, 5 Jan 2015 13:15:16 -0800 Subject: [PATCH 2/2] apply browserify bundle collapser to all build type --- grunt/config/browserify.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/grunt/config/browserify.js b/grunt/config/browserify.js index d7730a48d1..163b117ad3 100644 --- a/grunt/config/browserify.js +++ b/grunt/config/browserify.js @@ -59,6 +59,7 @@ var basic = { debug: false, standalone: 'React', transforms: [envify({NODE_ENV: 'development'})], + plugins: [collapser], after: [es3ify.transform, derequire, simpleBannerify] }; @@ -82,6 +83,7 @@ var transformer = { debug: false, standalone: 'JSXTransformer', transforms: [], + plugins: [collapser], after: [es3ify.transform, derequire, simpleBannerify] }; @@ -94,6 +96,7 @@ var addons = { standalone: 'React', packageName: 'React (with addons)', transforms: [envify({NODE_ENV: 'development'})], + plugins: [collapser], after: [es3ify.transform, derequire, simpleBannerify] }; @@ -120,7 +123,8 @@ var withCodeCoverageLogging = { transforms: [ envify({NODE_ENV: 'development'}), require('coverify') - ] + ], + plugins: [collapser] }; module.exports = {