#!/bin/bash set -e # Windows 部署包构建脚本(macOS 交叉编译? # 输出?bin/,与 build.bat 保持一? OUTPUT_DIR="bin" VERSION="dev" echo "=== 1. 构建前端 ===" cd frontend npm run build cd .. echo "=== 2. 复制前端产物?public/ ===" rm -rf public/* cp -r frontend/dist/* public/ echo "=== 3. 清理旧产?===" rm -rf "$OUTPUT_DIR" mkdir -p "$OUTPUT_DIR/etc" mkdir -p "$OUTPUT_DIR/doc" echo "=== 4. 编译主程?(Windows x64) ===" CGO_ENABLED=0 GOOS=windows GOARCH=amd64 \ go build -trimpath \ -ldflags "-s -w -H=windowsgui -X main.Version=$VERSION" \ -o "$OUTPUT_DIR/bj_power_mes.exe" . echo "=== 5. 编译数据库工?===" cd schema/tools CGO_ENABLED=0 GOOS=windows GOARCH=amd64 \ go build -trimpath -o "../../$OUTPUT_DIR/migrate.exe" migrate.go app.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 \ go build -trimpath -o "../../$OUTPUT_DIR/data.exe" data.go app.go cd ../.. echo "=== 6. 复制配置和数据文?===" cp etc/bj_power_mes-api.yaml "$OUTPUT_DIR/etc/" cp app.ico "$OUTPUT_DIR/" cp doc/signals.sql "$OUTPUT_DIR/doc/" cp doc/data.sql "$OUTPUT_DIR/doc/" cp doc/reset.sql "$OUTPUT_DIR/doc/" cp doc/engine_schema.sql "$OUTPUT_DIR/doc/" cp doc/new_recipe.sql "$OUTPUT_DIR/doc/" echo "" echo "=== 构建完成 ===" echo "输出目录: $(pwd)/$OUTPUT_DIR/" echo "" echo "目录结构:" find "$OUTPUT_DIR" -type f -maxdepth 3 | sort echo "" echo "使用方法:" echo " 1. ?bin/ 目录复制?Windows" echo " 2. 安装 PostgreSQL,创建数据库 bj_power_mes" echo " 3. 修改 etc/bj_power_mes-api.yaml 中的数据库连接信? echo " 4. 首次部署依次执行:" echo " migrate.exe # 创建所有表结构" echo " data.exe signals # 导入 PLC 信号定义" echo " data.exe seed # 导入设备/配方/产品数据" echo " data.exe admin # 创建管理员账?admin/admin123" echo " data.exe new-engine # 初始化新引擎表结?+ 配方(交互式输入 y? echo " 5. 运行 bj_power_mes.exe(首次运行自动创建桌?开始菜单快捷方式)"