Riichi/Makefile
2026-01-02 18:39:20 +01:00

107 lines
2.5 KiB
Makefile

# ==================================
# Riichi Mahjong Tutorial - Makefile
# ==================================
.PHONY: all dev build preview test lint format clean hard-clean zip help install
# Default target
all: build
# Install dependencies
install:
@echo "Installing dependencies..."
npm install
# Development server with hot reload
dev:
@echo "Starting development server..."
npm run dev
# Production build
build:
@echo "Building for production..."
npm run build
# Preview production build
preview:
@echo "Previewing production build..."
npm run preview
# Run tests
test:
@echo "Running tests..."
npm run test
# Run tests in watch mode
test-watch:
@echo "Running tests in watch mode..."
npm run test:watch
# Lint code
lint:
@echo "Linting code..."
npm run lint
# Fix linting issues
lint-fix:
@echo "Fixing linting issues..."
npm run lint:fix
# Format code
format:
@echo "Formatting code..."
npm run format
# Type check
typecheck:
@echo "Type checking..."
npm run typecheck
# Create distribution zip
zip: build
@echo "Creating distribution archive..."
@rm -rf riichi
@mkdir riichi
@cp -r build riichi/
@cp index.html riichi/
@cp -r img riichi/
@cp -r src/styles riichi/src/ 2>/dev/null || mkdir -p riichi/src && cp -r src/styles riichi/src/
@zip -r riichi.zip riichi
@rm -rf riichi
@echo "Created riichi.zip"
# Clean build artifacts
clean:
@echo "Cleaning build artifacts..."
@rm -rf build/
@rm -rf dist/
@rm -f riichi.zip
@rm -rf riichi/
# Deep clean (including dependencies)
hard-clean: clean
@echo "Deep cleaning (including dependencies)..."
@rm -rf node_modules/
@rm -f package-lock.json
@rm -rf .cache/
@rm -f *.tsbuildinfo
# Show help
help:
@echo ""
@echo "Riichi Mahjong Tutorial - Available Commands"
@echo "================================================"
@echo ""
@echo " make install - Install npm dependencies"
@echo " make dev - Start development server with hot reload"
@echo " make build - Build for production"
@echo " make preview - Preview production build"
@echo " make test - Run tests"
@echo " make test-watch - Run tests in watch mode"
@echo " make lint - Check code for linting errors"
@echo " make lint-fix - Fix linting errors automatically"
@echo " make format - Format code with Prettier"
@echo " make typecheck - Run TypeScript type checking"
@echo " make zip - Create distribution archive"
@echo " make clean - Remove build artifacts"
@echo " make hard-clean - Remove all generated files and dependencies"
@echo ""