mirror of
https://github.com/MatrixSeven/file-transfer-go.git
synced 2026-02-04 03:25:03 +08:00
109 lines
2.8 KiB
Makefile
109 lines
2.8 KiB
Makefile
# Makefile for File Transfer System (Full Stack)
|
||
|
||
.PHONY: build clean run dev frontend backend fullstack help
|
||
|
||
# 构建参数
|
||
GOCMD=go
|
||
GOBUILD=$(GOCMD) build
|
||
GOCLEAN=$(GOCMD) clean
|
||
BINARY_NAME=file-transfer-server
|
||
BINARY_UNIX=$(BINARY_NAME)_unix
|
||
SCRIPT_DIR=./
|
||
|
||
# 默认构建 - 完整的前后端
|
||
build: fullstack
|
||
|
||
# 完整的前后端构建(SSG + Go嵌入)
|
||
fullstack:
|
||
@echo "🚀 开始全栈构建..."
|
||
@$(SCRIPT_DIR)build-fullstack.sh
|
||
|
||
# 开发模式构建
|
||
dev:
|
||
@echo "🔧 开发模式构建..."
|
||
@$(SCRIPT_DIR)build-fullstack.sh --dev --verbose
|
||
|
||
# 只构建前端(SSG)
|
||
frontend:
|
||
@echo "🎨 构建前端..."
|
||
@$(SCRIPT_DIR)build-fullstack.sh --frontend-only
|
||
|
||
# 只构建后端(需要前端已构建)
|
||
backend:
|
||
@echo "⚙️ 构建后端..."
|
||
@$(SCRIPT_DIR)build-fullstack.sh --backend-only
|
||
|
||
# 传统 Go 构建(不包含嵌入的前端)
|
||
build-go:
|
||
@echo "📦 传统 Go 构建..."
|
||
$(GOBUILD) -o $(BINARY_NAME) -v ./cmd
|
||
|
||
# 清理所有构建文件
|
||
clean:
|
||
@echo "🧹 清理构建文件..."
|
||
@$(SCRIPT_DIR)build-fullstack.sh --clean
|
||
$(GOCLEAN)
|
||
rm -f $(BINARY_NAME)
|
||
rm -f $(BINARY_UNIX)
|
||
|
||
# 运行应用(先构建)
|
||
run: build
|
||
@echo "🚀 启动应用..."
|
||
./$(BINARY_NAME)
|
||
|
||
# 快速运行(使用现有二进制)
|
||
run-quick:
|
||
@echo "⚡ 快速启动..."
|
||
./$(BINARY_NAME)
|
||
|
||
# Linux 交叉编译
|
||
build-linux:
|
||
@echo "🐧 Linux 交叉编译..."
|
||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 $(GOBUILD) -o $(BINARY_UNIX) -v ./cmd
|
||
|
||
# 安装依赖
|
||
install-deps:
|
||
@echo "📦 安装 Go 依赖..."
|
||
$(GOCMD) mod download
|
||
$(GOCMD) mod tidy
|
||
@echo "📦 安装前端依赖..."
|
||
cd chuan-next && yarn install
|
||
|
||
# 检查代码
|
||
check:
|
||
@echo "🔍 代码检查..."
|
||
$(GOCMD) vet ./...
|
||
$(GOCMD) fmt ./...
|
||
cd chuan-next && yarn lint
|
||
|
||
# 测试
|
||
test:
|
||
@echo "🧪 运行测试..."
|
||
$(GOCMD) test -v ./...
|
||
|
||
# 显示帮助
|
||
help:
|
||
@echo "🛠️ 可用的构建命令:"
|
||
@echo ""
|
||
@echo "主要命令:"
|
||
@echo " make build - 完整构建(前端SSG + Go嵌入)"
|
||
@echo " make dev - 开发模式构建(包含调试信息)"
|
||
@echo " make run - 构建并运行应用"
|
||
@echo " make clean - 清理所有构建文件"
|
||
@echo ""
|
||
@echo "分离构建:"
|
||
@echo " make frontend - 只构建前端(Next.js SSG)"
|
||
@echo " make backend - 只构建后端(需要前端已构建)"
|
||
@echo " make build-go - 传统 Go 构建(不含前端)"
|
||
@echo ""
|
||
@echo "其他命令:"
|
||
@echo " make run-quick - 直接运行现有二进制"
|
||
@echo " make build-linux - Linux 交叉编译"
|
||
@echo " make install-deps- 安装所有依赖"
|
||
@echo " make check - 代码检查和格式化"
|
||
@echo " make test - 运行测试"
|
||
@echo " make help - 显示此帮助"
|
||
@echo ""
|
||
@echo "详细构建选项(直接调用脚本):"
|
||
@echo " ./build-fullstack.sh --help"
|