25 lines
780 B
Bash
Executable File
25 lines
780 B
Bash
Executable File
#!/bin/sh
|
|
set -euo pipefail
|
|
|
|
export npm_config_cache=${npm_config_cache:-/tmp/.npm}
|
|
mkdir -p "$(dirname "$npm_config_cache")" "$npm_config_cache" 2>/dev/null || true
|
|
|
|
LOCKFILE_STAMP="node_modules/.package-lock.cksum"
|
|
CURRENT_LOCKFILE_CKSUM=$(cksum package-lock.json | awk '{print $1 ":" $2}')
|
|
INSTALLED_LOCKFILE_CKSUM=""
|
|
|
|
if [ -f "$LOCKFILE_STAMP" ]; then
|
|
INSTALLED_LOCKFILE_CKSUM=$(cat "$LOCKFILE_STAMP")
|
|
fi
|
|
|
|
if [ ! -x node_modules/.bin/nodemon ] || [ "$CURRENT_LOCKFILE_CKSUM" != "$INSTALLED_LOCKFILE_CKSUM" ]; then
|
|
echo "[backend] Installing dependencies via npm ci..."
|
|
npm ci --include=dev
|
|
printf '%s' "$CURRENT_LOCKFILE_CKSUM" > "$LOCKFILE_STAMP"
|
|
else
|
|
echo "[backend] Using existing node_modules cache."
|
|
fi
|
|
|
|
echo "[backend] Starting dev server..."
|
|
exec npm run dev
|