Dream-MachineProcurementList/start.sh
Chever John 3b638a9509
feat: Marks script as executable
Makes the `start.sh` script executable by changing its permissions.

This ensures that the script can be run directly without needing to
explicitly call `sh start.sh`.
2025-08-21 11:31:32 +08:00

137 lines
No EOL
4.5 KiB
Bash
Executable file

#!/bin/bash
# Dream-Machine 采购清单管理系统快速启动脚本
# Quick start script for Dream-Machine Purchase List Management System
set -e
# 颜色定义
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 显示横幅
echo -e "${BLUE}"
echo "╔══════════════════════════════════════════════════════════════╗"
echo "║ Dream-Machine 采购清单管理系统 ║"
echo "║ Purchase List Management ║"
echo "╚══════════════════════════════════════════════════════════════╝"
echo -e "${NC}"
# 检查系统要求
echo -e "${YELLOW}🔍 检查系统要求...${NC}"
# 检查 Node.js
if ! command -v node &> /dev/null; then
echo -e "${RED}❌ Node.js 未安装。请安装 Node.js v18.0.0 或更高版本${NC}"
exit 1
fi
NODE_VERSION=$(node --version | cut -d'v' -f2)
echo -e "${GREEN}✅ Node.js 版本: v${NODE_VERSION}${NC}"
# 检查 npm
if ! command -v npm &> /dev/null; then
echo -e "${RED}❌ npm 未安装${NC}"
exit 1
fi
NPM_VERSION=$(npm --version)
echo -e "${GREEN}✅ npm 版本: ${NPM_VERSION}${NC}"
# 检查 Make
if command -v make &> /dev/null; then
echo -e "${GREEN}✅ Make 可用 - 推荐使用 Makefile 命令${NC}"
USE_MAKE=true
else
echo -e "${YELLOW}⚠️ Make 不可用 - 将使用 npm 命令${NC}"
USE_MAKE=false
fi
echo ""
# 询问用户选择
echo -e "${BLUE}🚀 请选择启动方式:${NC}"
echo "1) 开发环境 (Development)"
echo "2) 生产构建 (Production Build)"
echo "3) 生产预览 (Production Preview)"
echo "4) 显示帮助 (Show Help)"
read -p "请输入选择 (1-4): " choice
case $choice in
1)
echo -e "${GREEN}🔧 启动开发环境...${NC}"
if [ "$USE_MAKE" = true ]; then
make dev
else
echo -e "${YELLOW}📦 安装依赖...${NC}"
npm install
echo -e "${YELLOW}🚀 启动开发服务器...${NC}"
npm run dev
fi
;;
2)
echo -e "${GREEN}🏗️ 构建生产版本...${NC}"
if [ "$USE_MAKE" = true ]; then
make build
else
echo -e "${YELLOW}📦 安装依赖...${NC}"
npm install
echo -e "${YELLOW}🔍 代码检查...${NC}"
npm run lint
echo -e "${YELLOW}🏗️ 构建中...${NC}"
npm run build
fi
echo -e "${GREEN}✅ 构建完成!输出目录: dist/${NC}"
;;
3)
echo -e "${GREEN}👀 启动生产预览...${NC}"
if [ "$USE_MAKE" = true ]; then
make preview
else
if [ ! -d "dist" ]; then
echo -e "${YELLOW}📦 安装依赖...${NC}"
npm install
echo -e "${YELLOW}🏗️ 构建生产版本...${NC}"
npm run build
fi
echo -e "${YELLOW}🚀 启动预览服务器...${NC}"
npm run preview
fi
;;
4)
echo -e "${BLUE}📚 可用命令:${NC}"
echo ""
if [ "$USE_MAKE" = true ]; then
echo -e "${GREEN}使用 Makefile (推荐):${NC}"
echo " make help - 显示所有可用命令"
echo " make dev - 启动开发环境"
echo " make build - 构建生产版本"
echo " make preview - 预览生产版本"
echo " make lint - 代码质量检查"
echo " make clean - 清理文件"
echo " make info - 显示项目信息"
echo ""
fi
echo -e "${GREEN}使用 npm:${NC}"
echo " npm install - 安装依赖"
echo " npm run dev - 启动开发服务器"
echo " npm run build - 构建生产版本"
echo " npm run preview - 预览生产版本"
echo " npm run lint - 代码质量检查"
echo ""
echo -e "${BLUE}📖 更多信息请查看:${NC}"
echo " - README.md - 项目说明文档"
echo " - DEPLOYMENT.md - 部署指南文档"
;;
*)
echo -e "${RED}❌ 无效选择${NC}"
exit 1
;;
esac
echo ""
echo -e "${GREEN}🎉 感谢使用 Dream-Machine 采购清单管理系统!${NC}"