63 lines
1.1 KiB
Python
Executable File
63 lines
1.1 KiB
Python
Executable File
#!/bin/sh
|
|
|
|
usage () {
|
|
printf "Usage: build-umd <argument>\n"
|
|
}
|
|
|
|
# use zopfli for better compression if available
|
|
gzip () {
|
|
zopfli -h 2>/dev/null
|
|
if [ $? -eq 0 ]; then
|
|
zopfli "$1" -i1000 -c
|
|
else
|
|
gzip -c "$1"
|
|
fi
|
|
}
|
|
|
|
build_dev () {
|
|
mkdir -p dist/
|
|
NODE_ENV=development browserify index.js \
|
|
--standalone=choo \
|
|
-t envify \
|
|
-g yo-yoify \
|
|
-g es2020 \
|
|
> dist/choo.js
|
|
}
|
|
|
|
build_min () {
|
|
mkdir -p dist/
|
|
NODE_ENV=production browserify index.js \
|
|
--standalone=choo \
|
|
-t envify \
|
|
-g unassertify \
|
|
-g yo-yoify \
|
|
-g es2020 \
|
|
-g uglifyify \
|
|
-t envify \
|
|
-p bundle-collapser/plugin \
|
|
| uglifyjs \
|
|
> dist/choo.min.js
|
|
}
|
|
|
|
build_gz () {
|
|
build_min
|
|
gzip dist/choo.min.js > dist/choo.min.js.gz
|
|
cp dist/choo.min.js.gz dist/choo.gz
|
|
}
|
|
|
|
# parse CLI flags
|
|
while true; do
|
|
case "$1" in
|
|
-h|--help) usage && exit 1 ;;
|
|
-- ) shift; break ;;
|
|
* ) break ;;
|
|
esac
|
|
done
|
|
|
|
case "$1" in
|
|
d|dev) shift; build_dev "$@" ;;
|
|
m|min) shift; build_min "$@" ;;
|
|
g|gzip) shift; build_gz "$@" ;;
|
|
*) shift; build_min "$@" ;;
|
|
esac
|