86 lines
2.3 KiB
Bash
Executable File
86 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
###
|
|
# @Date: 2025-04-25 13:45:35
|
|
# @LastEditors: 陈子健
|
|
# @LastEditTime: 2025-06-25 14:01:43
|
|
# @FilePath: /lyroc/build.sh
|
|
###
|
|
|
|
# lyroc 打包脚本
|
|
# 该脚本将前后端整合并打包为Electron应用
|
|
|
|
# 显示彩色输出
|
|
GREEN='\033[0;32m'
|
|
BLUE='\033[0;34m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${BLUE}开始构建 lyroc 应用...${NC}"
|
|
|
|
# 检查基本命令是否存在
|
|
command -v node >/dev/null 2>&1 || { echo -e "${RED}错误: node 未安装${NC}" >&2; exit 1; }
|
|
command -v npm >/dev/null 2>&1 || { echo -e "${RED}错误: npm 未安装${NC}" >&2; exit 1; }
|
|
command -v python3 >/dev/null 2>&1 || { echo -e "${RED}错误: python3 未安装${NC}" >&2; exit 1; }
|
|
|
|
# 项目根目录
|
|
ROOT_DIR="$(pwd)"
|
|
FRONTEND_DIR="$ROOT_DIR/frontend"
|
|
BACKEND_DIR="$ROOT_DIR/backend_local"
|
|
ELECTRON_DIR="$ROOT_DIR/electron-app"
|
|
|
|
# 1. 构建前端
|
|
echo -e "${GREEN}[1/4] 构建前端...${NC}"
|
|
cd "$FRONTEND_DIR" || exit 1
|
|
npm install
|
|
npm run build
|
|
if [ $? -ne 0 ]; then
|
|
echo -e "${RED}前端构建失败${NC}"
|
|
exit 1
|
|
fi
|
|
echo -e "${GREEN}前端构建成功${NC}"
|
|
|
|
# 2. 确认后端依赖已安装
|
|
echo -e "${GREEN}[2/4] 配置后端...${NC}"
|
|
cd "$BACKEND_DIR" || exit 1
|
|
|
|
# 创建虚拟环境并安装依赖
|
|
python3 -m pip install --upgrade pip
|
|
python3 -m pip install -r requirements.txt
|
|
if [ $? -ne 0 ]; then
|
|
echo -e "${RED}后端依赖安装失败${NC}"
|
|
exit 1
|
|
fi
|
|
echo -e "${GREEN}后端配置完成${NC}"
|
|
|
|
# 3. 配置Electron应用
|
|
echo -e "${GREEN}[3/4] 配置Electron应用...${NC}"
|
|
cd "$ELECTRON_DIR" || exit 1
|
|
# npm install
|
|
# if [ $? -ne 0 ]; then
|
|
# echo -e "${RED}Electron依赖安装失败${NC}"
|
|
# exit 1
|
|
# fi
|
|
echo -e "${GREEN}Electron配置完成${NC}"
|
|
|
|
# 4. 创建图标目录
|
|
echo -e "${GREEN}[4/4] 准备应用图标...${NC}"
|
|
mkdir -p "$ELECTRON_DIR/build"
|
|
|
|
# 如果没有图标,使用默认图标或生成一个简单图标
|
|
if [ ! -f "$ELECTRON_DIR/build/icon.icns" ]; then
|
|
echo -e "${BLUE}使用默认图标${NC}"
|
|
# 这里可以复制一个默认图标或使用命令生成简单图标
|
|
fi
|
|
|
|
# 5. 打包应用
|
|
echo -e "${GREEN}开始打包Electron应用...${NC}"
|
|
cd "$ELECTRON_DIR" || exit 1
|
|
npm run build
|
|
if [ $? -ne 0 ]; then
|
|
echo -e "${RED}Electron打包失败${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${GREEN}应用打包成功!${NC}"
|
|
echo -e "${BLUE}应用位于: ${ELECTRON_DIR}/dist${NC}"
|