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`.
137 lines
No EOL
4.5 KiB
Bash
Executable file
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}" |