From 2f13cfa85b1e40e0758c01d8e9be9b3e6f128f67 Mon Sep 17 00:00:00 2001 From: Andres Suarez Date: Fri, 11 Sep 2015 00:33:46 -0700 Subject: [PATCH] optimize bundle builds --- package.json | 4 ++- packages/babel/scripts/build-dist.sh | 44 +++++++++++++++++++++++----- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index a229b833f1..5d11eeac6c 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,10 @@ "devDependencies": { "babel": "5.8.19", "babel-eslint": "^4.0.6", - "browserify": "^11.0.0", + "browserify": "^11.2.0", + "bundle-collapser": "^1.2.1", "chai": "^2.2.0", + "derequire": "^2.0.2", "es5-shim": "^4.1.7", "eslint": "^1.1.0", "fs-readdir-recursive": "^0.1.2", diff --git a/packages/babel/scripts/build-dist.sh b/packages/babel/scripts/build-dist.sh index b43bf42f56..41b8ebc695 100755 --- a/packages/babel/scripts/build-dist.sh +++ b/packages/babel/scripts/build-dist.sh @@ -3,24 +3,54 @@ set -e BROWSERIFY_CMD="../../node_modules/browserify/bin/cmd.js" UGLIFY_CMD="../../node_modules/uglify-js/bin/uglifyjs" -BROWSERIFY_IGNORE="-i esprima-fb" +BROWSERIFY_IGNORE="-i esprima-fb -i through" + +set -x mkdir -p dist node scripts/cache-templates -node $BROWSERIFY_CMD -e lib/polyfill.js >dist/polyfill.js -node $UGLIFY_CMD dist/polyfill.js >dist/polyfill.min.js +node $BROWSERIFY_CMD lib/polyfill.js \ + --insert-global-vars 'global' \ + --plugin bundle-collapser/plugin \ + --plugin derequire/plugin \ + >dist/polyfill.js +node $UGLIFY_CMD dist/polyfill.js \ + --compress warnings=false \ + --mangle \ + >dist/polyfill.min.js # Add a Unicode BOM so browsers will interpret the file as UTF-8 node -p '"\uFEFF"' > dist/browser.js -node $BROWSERIFY_CMD lib/api/browser.js -s babel $BROWSERIFY_IGNORE >>dist/browser.js +node $BROWSERIFY_CMD lib/api/browser.js \ + --standalone babel \ + --plugin bundle-collapser/plugin \ + --plugin derequire/plugin \ + $BROWSERIFY_IGNORE \ + >>dist/browser.js node -p '"\uFEFF"' > dist/browser.min.js -node $UGLIFY_CMD dist/browser.js >>dist/browser.min.js +node $UGLIFY_CMD dist/browser.js \ + --compress warnings=false \ + --mangle \ + >>dist/browser.min.js -node $BROWSERIFY_CMD lib/api/node.js --node $BROWSERIFY_IGNORE >dist/node.js +node $BROWSERIFY_CMD lib/api/node.js \ + --standalone babel \ + --node \ + --plugin bundle-collapser/plugin \ + --plugin derequire/plugin \ + $BROWSERIFY_IGNORE \ + >dist/node.js +node $UGLIFY_CMD dist/node.js \ + --compress warnings=false \ + --mangle \ + >dist/node.min.js node ../babel-cli/lib/babel-external-helpers >dist/external-helpers.js -node $UGLIFY_CMD dist/external-helpers.js >dist/external-helpers.min.js +node $UGLIFY_CMD dist/external-helpers.js \ + --compress warnings=false \ + --mangle \ + >dist/external-helpers.min.js rm -rf templates.json