Files
photography/frontend/Makefile
xujiang 400383d5cb
All checks were successful
Deploy Frontend / deploy (push) Successful in 2m34s
触发ci
2025-07-09 09:54:37 +08:00

136 lines
3.5 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Photography Frontend Makefile
# 使用 bun 作为包管理器的前端项目构建脚本
.PHONY: help install dev build start lint clean test type-check preview
# 默认目标
.DEFAULT_GOAL := help
# 项目配置
PROJECT_NAME = photography-frontend
PORT = 3000
BUILD_DIR = .next
# 帮助信息
help: ## 显示帮助信息
@echo "$(PROJECT_NAME) - 摄影作品集前端项目"
@echo ""
@echo "可用命令:"
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-15s\033[0m %s\n", $$1, $$2}'
# 安装依赖
install: ## 安装项目依赖
@echo "📦 安装依赖..."
bun install
# 开发服务器
dev: ## 启动开发服务器
@echo "🚀 启动开发服务器..."
bun run dev
# 构建项目
build: ## 构建生产版本
@echo "🔨 构建生产版本..."
bun run build
# 启动生产服务器
start: build ## 启动生产服务器
@echo "🌐 启动生产服务器..."
bun run start
# 代码检查
lint: ## 运行代码检查
@echo "🔍 运行代码检查..."
bun run lint
# 类型检查
type-check: ## 运行TypeScript类型检查
@echo "📋 运行类型检查..."
bunx tsc --noEmit
# 清理构建文件
clean: ## 清理构建文件和缓存
@echo "🧹 清理构建文件..."
rm -rf $(BUILD_DIR)
rm -rf node_modules
rm -f bun.lockb
# 重新安装
reinstall: clean install ## 清理并重新安装依赖
@echo "♻️ 重新安装完成"
# 预览构建结果
preview: build ## 预览构建结果
@echo "👀 预览构建结果..."
cd $(BUILD_DIR) && bunx serve
# 更新依赖
update: ## 更新所有依赖
@echo "⬆️ 更新依赖..."
bun update
# 添加依赖
add: ## 添加新依赖 (使用: make add PACKAGE=package-name)
@if [ -z "$(PACKAGE)" ]; then \
echo "❌ 请指定包名: make add PACKAGE=package-name"; \
exit 1; \
fi
@echo " 添加依赖: $(PACKAGE)"
bun add $(PACKAGE)
# 添加开发依赖
add-dev: ## 添加开发依赖 (使用: make add-dev PACKAGE=package-name)
@if [ -z "$(PACKAGE)" ]; then \
echo "❌ 请指定包名: make add-dev PACKAGE=package-name"; \
exit 1; \
fi
@echo " 添加开发依赖: $(PACKAGE)"
bun add -D $(PACKAGE)
# 移除依赖
remove: ## 移除依赖 (使用: make remove PACKAGE=package-name)
@if [ -z "$(PACKAGE)" ]; then \
echo "❌ 请指定包名: make remove PACKAGE=package-name"; \
exit 1; \
fi
@echo " 移除依赖: $(PACKAGE)"
bun remove $(PACKAGE)
# 格式化代码
format: ## 格式化代码
@echo "✨ 格式化代码..."
bunx prettier --write .
# 检查项目状态
status: ## 检查项目状态
@echo "📊 项目状态:"
@echo " Node版本: $(shell node --version)"
@echo " Bun版本: $(shell bun --version)"
@echo " 项目目录: $(PWD)"
@echo " 构建目录: $(BUILD_DIR)"
@if [ -f "bun.lockb" ]; then echo " 锁文件: ✅ bun.lockb"; else echo " 锁文件: ❌ 未找到"; fi
# 开发环境设置
setup: install ## 设置开发环境
@echo "🛠️ 设置开发环境..."
@if [ ! -f ".env.local" ]; then \
echo "📝 创建环境变量文件..."; \
cp .env.local.example .env.local 2>/dev/null || echo "NEXT_PUBLIC_API_URL=http://localhost:3001/api" > .env.local; \
fi
@echo "✅ 开发环境设置完成"
# 生产部署准备
deploy-prep: ## 准备生产部署
@echo "🚀 准备生产部署..."
make clean
make install
make type-check
make lint
make build
@echo "✅ 部署准备完成"
# 快速启动
quick: ## 快速启动 (安装依赖并启动开发服务器)
@echo "⚡ 快速启动..."
make install
make dev