#!/usr/bin/env bash set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" FRONTEND="$SCRIPT_DIR/encoach_frontend_new_v1" if [ ! -d "$FRONTEND" ]; then echo "Frontend not found: $FRONTEND" exit 1 fi # Project-local Node (e.g. downloaded by CI or a one-off curl) takes precedence for _tools_bin in "$SCRIPT_DIR"/.tools/node-v*/bin; do if [ -x "$_tools_bin/node" ]; then export PATH="$_tools_bin:$PATH" break fi done # Common setups (interactive shells often have these) export NVM_DIR="${NVM_DIR:-$HOME/.nvm}" if [ -s "$NVM_DIR/nvm.sh" ]; then # shellcheck source=/dev/null . "$NVM_DIR/nvm.sh" fi export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH" if ! command -v npm >/dev/null 2>&1; then echo "npm not found. Either:" echo " - Install Node.js 18+ (brew install node / nvm), or" echo " - Extract Node into $SCRIPT_DIR/.tools/ (e.g. node-v22.x.x-darwin-arm64/bin)" exit 1 fi cd "$FRONTEND" if [ ! -d node_modules ]; then npm install fi echo "Starting Vite on http://localhost:8080 (API: .env.development -> http://localhost:8069/api)" exec npm run dev