136 lines
3.5 KiB
Makefile
136 lines
3.5 KiB
Makefile
# 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
|