--- /dev/null
+#!/bin/bash
+# This generates:
+# - dist/dygraph.js
+# - dist/dygraph.js.map
+# - dist/dygraph.min.js
+# - dist/dygraph.min.js.map
+set -o errexit
+
+mkdir -p dist
+
+# Create dist/dygraph.js
+browserify \
+ -v \
+ -t babelify \
+ -t [ envify --NODE_ENV development ] \
+ --debug \
+ --standalone Dygraph \
+ src/dygraph.js \
+ > dist/dygraph.tmp.js
+
+# Create dist/dygraph.js.map
+cat dist/dygraph.tmp.js | exorcist --base . dist/dygraph.js.map > dist/dygraph.js
+
+# Create "production" bundle for minification
+browserify \
+ -v \
+ -t babelify \
+ -t [ envify --NODE_ENV production ] \
+ --debug \
+ --standalone Dygraph \
+ src/dygraph.js \
+ > dist/dygraph.tmp.js
+
+# Create dist/dygraph.tmp.js.map
+cat dist/dygraph.tmp.js | exorcist --base . dist/dygraph.tmp.js.map > /dev/null
+
+# Create dist/dygraph.js.min{,.map}
+uglifyjs --compress --mangle \
+ --in-source-map dist/dygraph.tmp.js.map \
+ --source-map-include-sources \
+ --source-map dist/dygraph.min.js.map \
+ -o dist/dygraph.min.js \
+ dist/dygraph.tmp.js
+
+# Copy to the old location
+cp dist/dygraph.min.js dist/dygraph-combined.js
+
+# Build GWT JAR
+jar -cf dist/dygraph-gwt.jar -C gwt org
+
+# Remove temp files.
+rm dist/dygraph.tmp.js
+rm dist/dygraph.tmp.js.map