1
0
Fork 0
docsearch/scripts/build-js

35 lines
1.1 KiB
Bash
Executable file

#!/usr/bin/env bash
set -e # exit when error
VERSION=$(json version < package.json)
NAME='docsearch'
LICENSE="/*! ${NAME} ${VERSION:-UNRELEASED} | © Algolia | github.com/algolia/docsearch */"
DIST_DIR_CDN="dist/cdn"
DIST_DIR_NPM="dist/npm"
DIST_FILE="$DIST_DIR_CDN/${NAME}.js"
DIST_FILE_MIN="$DIST_DIR_CDN/${NAME}.min.js"
DIST_FILE_SOURCEMAP="$DIST_DIR_CDN/${NAME}.min.map"
mkdir -p "$DIST_DIR_CDN" "$DIST_DIR_NPM"
# docsearch.js as one ES5 file + minified version and source maps
webpack --config webpack.config.jsdelivr.babel.js
echo "$LICENSE" | cat - "${DIST_FILE}" > /tmp/out && mv /tmp/out "${DIST_FILE}"
uglifyjs "${DIST_FILE}" \
--source-map "${DIST_FILE_SOURCEMAP}" \
--preamble "$LICENSE" \
-c warnings=false \
-m \
-o "${DIST_FILE_MIN}"
# docsearch as several ES5 files, to be `require`d
babel -q index.js -o "$DIST_DIR_NPM/index.js"
declare -a sources=("src")
for source in "${sources[@]}"
do
babel -q --out-dir "$DIST_DIR_NPM/${source}" ${source}
done
gzip_size=$(gzip -9 < $DIST_FILE_MIN | wc -c | pretty-bytes)
echo "=> $DIST_FILE_MIN gzipped will weight $gzip_size-bytes"