# Photography Admin Makefile # 使用 Bun 作为包管理器和运行时 .PHONY: help install dev build clean lint type-check format test preview setup quick status # 默认目标 help: @echo "Photography Admin - 管理后台" @echo "使用 Bun 作为包管理器和运行时" @echo "" @echo "可用命令:" @echo " setup - 初始化开发环境" @echo " quick - 快速启动 (安装依赖 + 启动开发服务器)" @echo " install - 安装依赖" @echo " dev - 启动开发服务器" @echo " build - 构建生产版本" @echo " preview - 预览构建结果" @echo " lint - 代码检查" @echo " type-check - TypeScript 类型检查" @echo " format - 格式化代码" @echo " test - 运行测试" @echo " clean - 清理构建文件" @echo " status - 显示项目状态" @echo "" @echo "🥖 使用 Bun 提供极速的开发体验!" # 初始化开发环境 setup: @echo "🔧 设置管理后台开发环境..." @if ! command -v bun >/dev/null 2>&1; then \ echo "❌ Bun 未安装,请先安装 Bun:"; \ echo " curl -fsSL https://bun.sh/install | bash"; \ exit 1; \ fi @echo "✅ Bun 已安装: $$(bun --version)" @echo "📦 安装依赖..." @bun install @echo "🎉 环境设置完成!" # 快速启动 (安装依赖 + 启动开发服务器) quick: @echo "🚀 快速启动管理后台..." @bun install @echo "🔥 启动开发服务器..." @bun run dev # 安装依赖 install: @echo "📦 安装依赖 (使用 Bun)..." @bun install # 启动开发服务器 dev: @echo "🔥 启动开发服务器..." @bun run dev # 构建生产版本 build: @echo "🏗️ 构建生产版本..." @bun run type-check @bun run build @echo "✅ 构建完成! 产物在 dist/ 目录" # 预览构建结果 preview: @echo "👀 预览构建结果..." @bun run preview # 代码检查 lint: @echo "🔍 运行代码检查..." @bun run lint # 修复代码格式问题 lint-fix: @echo "🔧 修复代码格式问题..." @bun run lint:fix # TypeScript 类型检查 type-check: @echo "📝 运行 TypeScript 类型检查..." @bun run type-check # 格式化代码 format: @echo "🎨 格式化代码..." @bun run format # 修复格式问题 format-fix: @echo "✨ 修复格式问题..." @bun run format:fix # 运行测试 test: @echo "🧪 运行测试..." @bun run test # 清理构建文件 clean: @echo "🧹 清理构建文件..." @rm -rf dist/ @rm -rf node_modules/.cache/ @echo "✅ 清理完成!" # 显示项目状态 status: @echo "📊 项目状态:" @echo "运行时: $$($${HOME}/.bun/bin/bun --version)" @echo "Node.js: $$(node --version)" @echo "依赖状态:" @if [ -f "bun.lock" ] || [ -f "bun.lockb" ]; then \ echo " ✅ bun.lock 存在"; \ else \ echo " ❌ bun.lock 不存在,请运行 'make install'"; \ fi @if [ -d "node_modules" ]; then \ echo " ✅ node_modules 存在"; \ else \ echo " ❌ node_modules 不存在,请运行 'make install'"; \ fi @if [ -d "dist" ]; then \ echo " ✅ dist 构建目录存在"; \ echo " 📦 构建大小: $$(du -sh dist/ | cut -f1)"; \ else \ echo " ❌ dist 目录不存在,请运行 'make build'"; \ fi # 分析构建产物 analyze: @echo "📊 分析构建产物..." @bun run build @echo "📁 文件结构:" @find dist/ -type f | head -20 @echo "📈 文件大小排序:" @find dist/ -type f -exec ls -lh {} + | sort -k5 -hr | head -10 # 安全审计 audit: @echo "🔒 运行安全审计..." @bun audit # 检查过时依赖 outdated: @echo "🔍 检查过时依赖..." @bun outdated # 更新依赖 update: @echo "⬆️ 更新依赖..." @bun update # 开发环境完整检查 check: lint type-check test @echo "✅ 所有检查通过!" # 生产环境构建 prod: clean install check build @echo "🚀 生产环境构建完成!" # 部署准备 deploy-prep: prod @echo "📦 准备部署文件..." @cd dist && tar -czf ../admin-dist.tar.gz * @echo "✅ 部署包已生成: admin-dist.tar.gz"