Minify JS build with terser

This commit is contained in:
Max Brunsfeld 2019-04-26 19:13:32 -07:00
parent 48743dda44
commit b4c4dc48ff
5 changed files with 42 additions and 22 deletions

View file

@ -1,15 +1,15 @@
#!/usr/bin/env bash
set -e
export EMCC_FORCE_STDLIBS=libc++
args="-Os"
target_dir="target/release"
if [[ "$1" == "--debug" ]]; then
args="-s SAFE_HEAP=1 -O0"
target_dir="target/debug"
args="-s ASSERTIONS=1 SAFE_HEAP=1 -O0"
fi
mkdir -p $target_dir
mkdir -p target/scratch target/release
docker run \
--rm \
@ -21,7 +21,6 @@ docker run \
-s WASM=1 \
-s ALLOW_MEMORY_GROWTH \
-s MAIN_MODULE=1 \
-s ASSERTIONS=1 \
-s EXPORT_ALL=1 \
$args \
-std=c99 \
@ -34,4 +33,21 @@ docker run \
--post-js lib/web/binding.js \
lib/src/lib.c \
lib/web/binding.c \
-o $target_dir/tree-sitter.js
-o target/scratch/tree-sitter.js
if [ ! -d lib/web/node_modules/terser ]; then
(
cd lib/web
npm install
)
fi
lib/web/node_modules/.bin/terser \
--compress \
--mangle \
--keep-fnames \
--keep-classnames \
-- target/scratch/tree-sitter.js \
> target/release/tree-sitter.js
mv target/scratch/tree-sitter.wasm target/release/tree-sitter.wasm