44 lines
949 B
Bash
Executable File
44 lines
949 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eo pipefail # this can be harmful, see https://www.youtube.com/watch?v=4Jo3Ml53kvc
|
|
. bs/.common || {
|
|
echo 'Please run this script from the project root directory' >&2;
|
|
exit 1;
|
|
}
|
|
# depends on
|
|
declare -r server='node_modules/.bin/web-dev-server'
|
|
declare -r lint='bs/dev/lint'
|
|
declare -r tsc='bs/dev/tsc'
|
|
declare -r assets='bs/dev/assets'
|
|
declare -r server_config='web-dev-server.config.js'
|
|
|
|
help(){
|
|
if ! isHelp "${@}"; then return 0; fi
|
|
echoReadmeInfo
|
|
cat <<-EOF
|
|
./src Starts the development server (default)
|
|
./dist Starts the production server
|
|
|
|
Defaults:
|
|
See server config file: '$server_config'
|
|
EOF
|
|
$server --help
|
|
exit 0
|
|
}
|
|
main(){
|
|
help "${@}"
|
|
|
|
$lint
|
|
local -r target="${1:-./src}" # ./src or ./dist
|
|
if [[ "$target" =~ 'dist' ]]; then
|
|
# console warns because of config file, use npx serve?
|
|
$server "${@}"
|
|
else
|
|
$assets
|
|
$tsc --watch --preserveWatchOutput &
|
|
$server "${@}" &
|
|
wait
|
|
fi
|
|
}
|
|
|
|
main "${@}"
|