优化前端
This commit is contained in:
@@ -1,20 +1,207 @@
|
||||
#!/bin/bash
|
||||
# 构建带版本号的产物
|
||||
# 用法: ./build.sh # 构建当前平台
|
||||
# GOOS=windows ./build.sh # 构建 Windows
|
||||
# GOOS=linux ./build.sh # 构建 Linux
|
||||
# 斗鱼抢购系统 - 一键启动/构建脚本
|
||||
# 用法:
|
||||
# ./build.sh # 开发模式(带热更新)
|
||||
# ./build.sh dev # 开发模式(带热更新)
|
||||
# ./build.sh build # 生产构建
|
||||
# ./build.sh win # 构建 Windows 版本
|
||||
# ./build.sh linux # 构建 Linux 版本
|
||||
# ./build.sh clean # 清理构建产物
|
||||
# ./build.sh install # 安装前端依赖
|
||||
|
||||
set -e
|
||||
|
||||
VERSION=$(grep '"version"' wails.json | head -1 | sed 's/.*"version": *"//;s/".*//')
|
||||
echo "版本: v${VERSION}"
|
||||
# 获取脚本所在目录
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
if [ "$GOOS" = "windows" ]; then
|
||||
wails build -platform windows/amd64 -o "douyu_go_v${VERSION}.exe"
|
||||
elif [ "$GOOS" = "linux" ]; then
|
||||
wails build -platform linux/amd64 -o "douyu_go_v${VERSION}"
|
||||
else
|
||||
# 颜色定义
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 获取版本号
|
||||
get_version() {
|
||||
grep '"version"' wails.json | head -1 | sed 's/.*"version": *"//;s/".*//'
|
||||
}
|
||||
|
||||
# 打印带颜色的消息
|
||||
info() {
|
||||
echo -e "${BLUE}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
success() {
|
||||
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
||||
}
|
||||
|
||||
warn() {
|
||||
echo -e "${YELLOW}[WARN]${NC} $1"
|
||||
}
|
||||
|
||||
error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 检查依赖
|
||||
check_deps() {
|
||||
local missing=()
|
||||
|
||||
if ! command -v wails &> /dev/null; then
|
||||
missing+=("wails")
|
||||
fi
|
||||
|
||||
if ! command -v go &> /dev/null; then
|
||||
missing+=("go")
|
||||
fi
|
||||
|
||||
if ! command -v node &> /dev/null; then
|
||||
missing+=("node")
|
||||
fi
|
||||
|
||||
if ! command -v npm &> /dev/null; then
|
||||
missing+=("npm")
|
||||
fi
|
||||
|
||||
if [ ${#missing[@]} -ne 0 ]; then
|
||||
error "缺少依赖: ${missing[*]}"
|
||||
fi
|
||||
}
|
||||
|
||||
# 安装前端依赖
|
||||
install_deps() {
|
||||
info "安装前端依赖..."
|
||||
cd frontend
|
||||
npm install
|
||||
cd ..
|
||||
success "前端依赖安装完成"
|
||||
}
|
||||
|
||||
# 开发模式
|
||||
dev_mode() {
|
||||
local VERSION=$(get_version)
|
||||
info "启动开发模式 v${VERSION}"
|
||||
info "前端热更新 + 后端自动重编译"
|
||||
echo ""
|
||||
echo -e "${YELLOW}提示: 按 Ctrl+C 退出${NC}"
|
||||
echo ""
|
||||
|
||||
wails dev
|
||||
}
|
||||
|
||||
# 生产构建
|
||||
build_production() {
|
||||
local VERSION=$(get_version)
|
||||
info "开始生产构建 v${VERSION}"
|
||||
|
||||
# 类型检查
|
||||
info "TypeScript 类型检查..."
|
||||
cd frontend
|
||||
npm run type-check
|
||||
cd ..
|
||||
|
||||
# Wails 构建
|
||||
wails build
|
||||
fi
|
||||
|
||||
echo "=== 构建产物 ==="
|
||||
ls -lh build/bin/
|
||||
success "构建完成!"
|
||||
echo ""
|
||||
echo "=== 构建产物 ==="
|
||||
ls -lh build/bin/
|
||||
}
|
||||
|
||||
# 构建 Windows 版本
|
||||
build_windows() {
|
||||
local VERSION=$(get_version)
|
||||
info "构建 Windows 版本 v${VERSION}"
|
||||
|
||||
GOOS=windows GOARCH=amd64 wails build -platform windows/amd64 -o "douyu_go_v${VERSION}.exe"
|
||||
|
||||
success "Windows 构建完成!"
|
||||
echo ""
|
||||
echo "=== 构建产物 ==="
|
||||
ls -lh build/bin/
|
||||
}
|
||||
|
||||
# 构建 Linux 版本
|
||||
build_linux() {
|
||||
local VERSION=$(get_version)
|
||||
info "构建 Linux 版本 v${VERSION}"
|
||||
|
||||
GOOS=linux GOARCH=amd64 wails build -platform linux/amd64 -o "douyu_go_v${VERSION}"
|
||||
|
||||
success "Linux 构建完成!"
|
||||
echo ""
|
||||
echo "=== 构建产物 ==="
|
||||
ls -lh build/bin/
|
||||
}
|
||||
|
||||
# 清理构建产物
|
||||
clean_build() {
|
||||
info "清理构建产物..."
|
||||
|
||||
rm -rf build/bin/*
|
||||
rm -rf frontend/dist
|
||||
rm -rf frontend/node_modules/.vite
|
||||
|
||||
success "清理完成"
|
||||
}
|
||||
|
||||
# 显示帮助
|
||||
show_help() {
|
||||
echo "斗鱼抢购系统 - 一键启动/构建脚本"
|
||||
echo ""
|
||||
echo "用法:"
|
||||
echo " ./build.sh # 开发模式(带热更新)"
|
||||
echo " ./build.sh dev # 开发模式(带热更新)"
|
||||
echo " ./build.sh build # 生产构建"
|
||||
echo " ./build.sh win # 构建 Windows 版本"
|
||||
echo " ./build.sh linux # 构建 Linux 版本"
|
||||
echo " ./build.sh clean # 清理构建产物"
|
||||
echo " ./build.sh install # 安装前端依赖"
|
||||
echo " ./build.sh help # 显示此帮助"
|
||||
echo ""
|
||||
echo "环境变量:"
|
||||
echo " GOOS 目标操作系统 (windows/linux/darwin)"
|
||||
echo " GOARCH 目标架构 (amd64/arm64)"
|
||||
}
|
||||
|
||||
# 主函数
|
||||
main() {
|
||||
# 检查依赖
|
||||
check_deps
|
||||
|
||||
# 解析命令
|
||||
local command="${1:-dev}"
|
||||
|
||||
case "$command" in
|
||||
dev)
|
||||
dev_mode
|
||||
;;
|
||||
build)
|
||||
build_production
|
||||
;;
|
||||
win|windows)
|
||||
build_windows
|
||||
;;
|
||||
linux)
|
||||
build_linux
|
||||
;;
|
||||
clean)
|
||||
clean_build
|
||||
;;
|
||||
install)
|
||||
install_deps
|
||||
;;
|
||||
help|-h|--help)
|
||||
show_help
|
||||
;;
|
||||
*)
|
||||
error "未知命令: $command\n\n使用 ./build.sh help 查看帮助"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# 运行主函数
|
||||
main "$@"
|
||||
|
||||
Reference in New Issue
Block a user