| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- #!/bin/bash
- # ============================================
- # 前端构建打包脚本 (Linux)
- # 用于开发环境构建前端并打包
- # ============================================
- set -e
- # [修改 2] 定义主目录变量,支持传入参数,默认为当前目录
- PROJECT_ROOT="/home/lq/lq_workspace/LQLabelServer/source/LabelingSystem"
- DEPLOY_TMP="/home/lq/lq_workspace/LQLabelServer/deploy_tmp"
- echo "============================================"
- echo " LQ Label 前端构建脚本"
- echo " 项目目录:$PROJECT_ROOT"
- echo "============================================"
- echo ""
- # [新增] 初始化 NVM 环境 (解决脚本中 nvm: command not found 问题)
- export NVM_DIR="$HOME/.nvm"
- if [ -s "$NVM_DIR/nvm.sh" ]; then
- \. "$NVM_DIR/nvm.sh"
- echo "[Env] NVM 已加载 (版本:$(nvm --version))"
- # [新增] 切换 Node 版本
- echo "[Env] 切换 Node 版本到 20.18.0..."
- nvm use 20.18.0
- node -v
- else
- echo "警告:未找到 NVM,将使用系统默认 Node 版本"
- fi
- # 进入项目主目录
- cd "$PROJECT_ROOT"
- # 检查是否在项目根目录
- if [ ! -f "web/package.json" ]; then
- echo "错误:请在项目根目录运行此脚本,或检查主目录配置"
- exit 1
- fi
- # 进入 web 目录
- cd web
- # 检查 node_modules
- if [ ! -d "node_modules" ]; then
- echo "安装依赖..."
- yarn install
- if [ $? -ne 0 ]; then
- echo "依赖安装失败"
- cd ..
- exit 1
- fi
- fi
- echo ""
- echo "[1/3] 构建前端项目..."
- yarn nx build lq_label --configuration=production
- if [ $? -ne 0 ]; then
- echo "构建失败"
- cd ..
- exit 1
- fi
- echo ""
- echo "[2/3] 打包 dist 目录..."
- # 回到根目录
- cd ..
- # [修改 1] 删除旧的 zip 包 (原为 tar.gz)
- if [ -f "lq_label_dist.zip" ]; then
- rm -f "lq_label_dist.zip"
- fi
- # 检查 zip 命令是否存在
- if ! command -v zip &> /dev/null; then
- echo "错误:zip 命令未找到,请安装 zip (sudo apt install zip)"
- exit 1
- fi
- # [修改 1] 使用 zip 打包 (原为 tar)
- # 进入 dist 目录进行打包,确保压缩包内根目录为 lq_label
- cd web/dist/apps
- zip -r ../../lq_label_dist.zip lq_label
- cd ../../
- if [ $? -ne 0 ]; then
- echo "打包失败"
- exit 1
- fi
- mv lq_label_dist.zip "$DEPLOY_TMP"
- echo ""
- echo "[3/3] 完成!"
- echo ""
- echo "============================================"
- echo " 构建产物:lq_label_dist.zip"
- echo " 可以提交到 Git 进行版本管理"
- echo "============================================"
- echo ""
- echo "下一步:"
- echo " 1. git add lq_label_dist.zip"
- echo " 2. git commit -m \"build: update frontend dist\""
- echo " 3. git push"
- echo " 4. 在服务器上运行 deploy.sh"
- echo ""
|