diff --git a/grunt/config/browserify.js b/grunt/config/browserify.js index 0288fa7515..163b117ad3 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\ @@ -58,6 +59,7 @@ var basic = { debug: false, standalone: 'React', transforms: [envify({NODE_ENV: 'development'})], + plugins: [collapser], after: [es3ify.transform, derequire, simpleBannerify] }; @@ -69,6 +71,7 @@ var min = { debug: false, standalone: 'React', transforms: [envify({NODE_ENV: 'production'}), uglifyify], + plugins: [collapser], after: [es3ify.transform, derequire, minify, bannerify] }; @@ -80,6 +83,7 @@ var transformer = { debug: false, standalone: 'JSXTransformer', transforms: [], + plugins: [collapser], after: [es3ify.transform, derequire, simpleBannerify] }; @@ -92,6 +96,7 @@ var addons = { standalone: 'React', packageName: 'React (with addons)', transforms: [envify({NODE_ENV: 'development'})], + plugins: [collapser], after: [es3ify.transform, derequire, simpleBannerify] }; @@ -104,6 +109,7 @@ var addonsMin = { standalone: 'React', packageName: 'React (with addons)', transforms: [envify({NODE_ENV: 'production'}), uglifyify], + plugins: [collapser], after: [es3ify.transform, derequire, minify, bannerify] }; @@ -117,7 +123,8 @@ var withCodeCoverageLogging = { transforms: [ envify({NODE_ENV: 'development'}), require('coverify') - ] + ], + plugins: [collapser] }; module.exports = { 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",