refactor: Makefile 命名规范化,新增顶层便捷命令
统一命名规范为 <namespace>-<action>[-<variant>] 格式: - 重命名 desktop-mac/win/linux → desktop-build-mac/win/linux - 重命名 backend-migrate-* → backend-db-* - 重命名 frontend-build-desktop → desktop-prepare-frontend - 重命名 embedfs-prepare → desktop-prepare-embedfs - 重命名 package-macos → desktop-package-mac 新增顶层便捷命令: - dev: 并行启动开发环境 - build: 构建所有产物 - test: 运行所有测试 - lint: 检查所有代码 - clean: 清理所有构建产物
This commit is contained in:
94
Makefile
94
Makefile
@@ -1,22 +1,44 @@
|
||||
.PHONY: all clean \
|
||||
backend-build backend-run backend-test backend-test-unit backend-test-integration backend-test-coverage \
|
||||
backend-lint backend-deps backend-generate \
|
||||
backend-migrate-up backend-migrate-down backend-migrate-status backend-migrate-create \
|
||||
frontend-build frontend-dev frontend-test frontend-test-watch frontend-test-coverage frontend-test-e2e frontend-lint \
|
||||
desktop-mac desktop-win desktop-linux package-macos
|
||||
.PHONY: all dev build test lint clean \
|
||||
backend-build backend-run backend-dev backend-test backend-test-unit backend-test-integration backend-test-coverage \
|
||||
backend-lint backend-clean backend-deps backend-generate \
|
||||
backend-db-up backend-db-down backend-db-status backend-db-create \
|
||||
frontend-build frontend-dev frontend-test frontend-test-watch frontend-test-coverage frontend-test-e2e frontend-lint frontend-clean \
|
||||
desktop-build desktop-build-mac desktop-build-win desktop-build-linux \
|
||||
desktop-dev desktop-package-mac desktop-package-win desktop-package-linux desktop-clean \
|
||||
desktop-prepare-frontend desktop-prepare-embedfs
|
||||
|
||||
# ============================================
|
||||
# 顶层便捷命令
|
||||
# ============================================
|
||||
|
||||
dev:
|
||||
@echo "🚀 Starting development environment..."
|
||||
@$(MAKE) -j2 backend-dev frontend-dev
|
||||
|
||||
build: backend-build frontend-build
|
||||
@echo "✅ Build complete"
|
||||
|
||||
test: backend-test frontend-test
|
||||
@echo "✅ All tests passed"
|
||||
|
||||
lint: backend-lint frontend-lint
|
||||
@echo "✅ Lint complete"
|
||||
|
||||
all: build test lint
|
||||
|
||||
# ============================================
|
||||
# 后端
|
||||
# ============================================
|
||||
|
||||
all: backend-build
|
||||
|
||||
backend-build:
|
||||
cd backend && go build -o bin/server ./cmd/server
|
||||
|
||||
backend-run:
|
||||
cd backend && go run ./cmd/server
|
||||
|
||||
backend-dev:
|
||||
cd backend && go run ./cmd/server
|
||||
|
||||
backend-test:
|
||||
cd backend && go test ./... -v
|
||||
|
||||
@@ -34,22 +56,25 @@ backend-test-coverage:
|
||||
backend-lint:
|
||||
cd backend && go tool golangci-lint run ./...
|
||||
|
||||
backend-clean:
|
||||
rm -rf backend/bin/ backend/coverage.out backend/coverage.html
|
||||
|
||||
backend-deps:
|
||||
cd backend && go mod tidy
|
||||
|
||||
backend-generate:
|
||||
cd backend && go generate ./...
|
||||
|
||||
backend-migrate-up:
|
||||
backend-db-up:
|
||||
cd backend && goose -dir migrations sqlite3 $(DB_PATH) up
|
||||
|
||||
backend-migrate-down:
|
||||
backend-db-down:
|
||||
cd backend && goose -dir migrations sqlite3 $(DB_PATH) down
|
||||
|
||||
backend-migrate-status:
|
||||
backend-db-status:
|
||||
cd backend && goose -dir migrations sqlite3 $(DB_PATH) status
|
||||
|
||||
backend-migrate-create:
|
||||
backend-db-create:
|
||||
@read -p "Migration name: " name; \
|
||||
cd backend && goose -dir migrations create $$name sql
|
||||
|
||||
@@ -78,35 +103,60 @@ frontend-test-e2e:
|
||||
frontend-lint:
|
||||
cd frontend && bun run lint
|
||||
|
||||
frontend-clean:
|
||||
rm -rf frontend/dist frontend/.next frontend/node_modules
|
||||
|
||||
# ============================================
|
||||
# 桌面应用
|
||||
# ============================================
|
||||
|
||||
frontend-build-desktop:
|
||||
cd frontend && cp .env.desktop .env.production.local && bun install && bun run build && rm -f .env.production.local
|
||||
desktop-build: desktop-build-mac desktop-build-win desktop-build-linux
|
||||
@echo "✅ Desktop builds complete for all platforms"
|
||||
|
||||
embedfs-prepare:
|
||||
desktop-prepare-frontend:
|
||||
@echo "📦 Preparing frontend for desktop..."
|
||||
cd frontend && cp .env.desktop .env.production.local
|
||||
cd frontend && bun install && bun run build
|
||||
rm -f frontend/.env.production.local
|
||||
|
||||
desktop-prepare-embedfs:
|
||||
@echo "📦 Preparing embedded filesystem..."
|
||||
rm -rf embedfs/assets embedfs/frontend-dist
|
||||
cp -r assets embedfs/assets
|
||||
cp -r frontend/dist embedfs/frontend-dist
|
||||
|
||||
desktop-mac: frontend-build-desktop embedfs-prepare
|
||||
desktop-build-mac: desktop-prepare-frontend desktop-prepare-embedfs
|
||||
@echo "🍎 Building macOS..."
|
||||
cd backend && CGO_ENABLED=1 GOOS=darwin GOARCH=arm64 go build -o ../build/nex-mac-arm64 ./cmd/desktop
|
||||
cd backend && CGO_ENABLED=1 GOOS=darwin GOARCH=amd64 go build -o ../build/nex-mac-amd64 ./cmd/desktop
|
||||
|
||||
desktop-win: frontend-build-desktop embedfs-prepare
|
||||
desktop-build-win: desktop-prepare-frontend desktop-prepare-embedfs
|
||||
@echo "🪟 Building Windows..."
|
||||
cd backend && CGO_ENABLED=1 GOOS=windows GOARCH=amd64 go build -ldflags "-H=windowsgui" -o ../build/nex-win-amd64.exe ./cmd/desktop
|
||||
|
||||
desktop-linux: frontend-build-desktop embedfs-prepare
|
||||
desktop-build-linux: desktop-prepare-frontend desktop-prepare-embedfs
|
||||
@echo "🐧 Building Linux..."
|
||||
cd backend && CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o ../build/nex-linux-amd64 ./cmd/desktop
|
||||
|
||||
package-macos:
|
||||
desktop-dev: desktop-prepare-frontend desktop-prepare-embedfs
|
||||
@echo "🖥️ Starting desktop app in dev mode..."
|
||||
cd backend && go run ./cmd/desktop
|
||||
|
||||
desktop-package-mac:
|
||||
./scripts/build/package-macos.sh
|
||||
|
||||
desktop-package-win:
|
||||
@echo "⚠️ Windows packaging not implemented yet"
|
||||
|
||||
desktop-package-linux:
|
||||
@echo "⚠️ Linux packaging not implemented yet"
|
||||
|
||||
desktop-clean:
|
||||
rm -rf build/ embedfs/assets embedfs/frontend-dist
|
||||
|
||||
# ============================================
|
||||
# 清理
|
||||
# ============================================
|
||||
|
||||
clean:
|
||||
rm -rf backend/bin/ backend/coverage.out backend/coverage.html
|
||||
rm -rf build/
|
||||
clean: backend-clean frontend-clean desktop-clean
|
||||
@echo "✅ Clean complete"
|
||||
|
||||
Reference in New Issue
Block a user