.PHONY: help dev dev-full stop status logs build build-remote build-both test test-coverage lint typecheck e2e check clean install sync test-ci help: @echo "Aeroflot.Flights.Web — Available commands:" @echo "" @echo " Development:" @echo " make dev - Start Modern.js dev server (:8080)" @echo " make dev-full - Start dev server with API proxy (:8080)" @echo " make stop - Stop running dev server" @echo " make status - Check if dev server is running" @echo " make logs - View dev server logs (tail -f)" @echo "" @echo " Building:" @echo " make build - Build standalone SSR server" @echo " make build-remote - Build MF remote (mf-manifest.json)" @echo " make build-both - Build standalone + remote" @echo " make clean - Clean build artifacts" @echo "" @echo " Testing & Quality:" @echo " make test - Run unit tests (Vitest)" @echo " make test-coverage - Run tests with coverage" @echo " make lint - Lint code (ESLint)" @echo " make typecheck - Type check (TypeScript)" @echo " make check - Run typecheck + lint + test" @echo " make test-ci - Run CI script unit tests (bash)" @echo "" @echo " E2E Testing:" @echo " make e2e - Run Playwright E2E tests" @echo "" @echo " Deployment:" @echo " make sync - Sync files to flights-front repo" @echo "" @echo " Setup:" @echo " make install - Install dependencies (pnpm install)" PNPM := pnpm PID_FILE := .dev.pid LOG_FILE := .dev.log API_TARGET ?= https://flights.test.aeroflot.ru TRACKER_TARGET ?= https://platform.test.aeroflot.ru SIGNALR_HUB_URL ?= http://localhost:8080/tracker/hub # Development dev: @echo "Starting Modern.js dev server in background..." @nohup $(PNPM) dev > $(LOG_FILE) 2>&1 & echo $$! > $(PID_FILE) @echo "Dev server started (PID: $$(cat $(PID_FILE)))" @echo "View logs: make logs" dev-full: @echo "Starting dev server with API proxy in background..." @API_TARGET="$(API_TARGET)" TRACKER_TARGET="$(TRACKER_TARGET)" SIGNALR_HUB_URL="$(SIGNALR_HUB_URL)" nohup node scripts/dev-server.mjs > $(LOG_FILE) 2>&1 & echo $$! > $(PID_FILE) @echo "Dev server started (PID: $$(cat $(PID_FILE)))" @echo " App & API: http://localhost:8080" @echo " API target: $(API_TARGET)" @echo " Tracker target: $(TRACKER_TARGET)" @echo " SignalR hub: $(SIGNALR_HUB_URL)" @echo "View logs: make logs" stop: @echo "Stopping dev server..." @if [ -f $(PID_FILE) ]; then \ kill $$(cat $(PID_FILE)) 2>/dev/null || true; \ rm -f $(PID_FILE); \ fi @pkill -f "modern dev" 2>/dev/null || true @pkill -f "node scripts/dev-server" 2>/dev/null || true @lsof -ti:8080 -ti:8081 2>/dev/null | xargs kill 2>/dev/null || true @echo "Stopped" status: @if [ -f $(PID_FILE) ] && ps -p $$(cat $(PID_FILE)) > /dev/null 2>&1; then \ echo "Dev server is running (PID: $$(cat $(PID_FILE)))"; \ else \ rm -f $(PID_FILE) 2>/dev/null; \ echo "Dev server is not running"; \ fi logs: @if [ -f $(LOG_FILE) ]; then \ tail -f $(LOG_FILE); \ else \ echo "No log file. Start server with: make dev"; \ fi # Building build: $(PNPM) build:standalone build-remote: $(PNPM) build:remote build-both: $(PNPM) build:both clean: rm -rf dist/ @echo "Clean complete" # Testing & Quality test: $(PNPM) test test-coverage: $(PNPM) test:coverage lint: $(PNPM) lint typecheck: $(PNPM) typecheck check: typecheck lint test # E2E e2e: $(PNPM) test:e2e # Deployment sync: ./scripts/sync-to-flights-front.sh # Setup install: $(PNPM) install # CI-script unit tests test-ci: $(PNPM) test:ci