@echo off chcp 65001 >nul echo ======================================== echo BLS心跳接收端部署脚本 echo ======================================== setlocal enabledelayedexpansion :: 检查Node.js是否安装 echo [1/7] 检查Node.js环境... node --version >nul 2>&1 if errorlevel 1 ( echo [错误] 未检测到Node.js,请先安装Node.js pause exit /b 1 ) echo [成功] Node.js版本: node --version :: 检查PM2是否安装 echo [2/7] 检查PM2环境... pm2 --version >nul 2>&1 if errorlevel 1 ( echo [警告] 未检测到PM2,正在安装PM2... call npm install -g pm2 if errorlevel 1 ( echo [错误] PM2安装失败 pause exit /b 1 ) ) echo [成功] PM2版本: pm2 --version :: 检查.env文件 echo [3/7] 检查环境配置文件... if not exist ".env" ( if exist ".env.example" ( echo [信息] 创建.env文件... copy .env.example .env >nul echo [警告] 请编辑.env文件,设置正确的配置参数 echo [提示] 使用记事本打开: notepad .env pause ) else ( echo [错误] 未找到.env.example文件 pause exit /b 1 ) ) else ( echo [成功] 环境配置文件已存在 ) :: 安装依赖 echo [4/7] 安装项目依赖... if not exist "node_modules" ( call npm install --production if errorlevel 1 ( echo [错误] 依赖安装失败 pause exit /b 1 ) ) else ( echo [信息] 依赖已存在,跳过安装 ) :: 创建日志目录 echo [5/7] 创建日志目录... if not exist "logs" ( mkdir logs echo [成功] 日志目录创建成功 ) else ( echo [信息] 日志目录已存在 ) :: 检查构建文件 echo [6/7] 检查构建文件... if not exist "dist\index.es.js" ( echo [警告] 未找到构建文件,请先运行 npm run build echo [提示] 如果这是首次部署,请确保已上传dist目录 pause exit /b 1 ) echo [成功] 构建文件检查通过 :: 初始化数据库 echo [7/7] 初始化数据库... echo [信息] 运行数据库初始化脚本... call npm run db:apply if errorlevel 1 ( echo [警告] 数据库初始化失败,请检查数据库连接配置 echo [提示] 可以稍后手动运行: npm run db:apply ) else ( echo [成功] 数据库初始化完成 ) :: 使用PM2启动服务 echo ======================================== echo 启动服务 echo ======================================== pm2 start ecosystem.config.cjs if errorlevel 1 ( echo [错误] 服务启动失败 pause exit /b 1 ) :: 设置开机自启 echo ======================================== echo 设置开机自启 echo ======================================== pm2 save pm2 startup echo [提示] 请按照提示完成开机自启设置 :: 显示服务状态 echo ======================================== echo 服务状态 echo ======================================== pm2 status echo ======================================== echo 部署完成! echo ======================================== echo. echo 常用命令: echo 查看状态: pm2 status echo 查看日志: pm2 logs web-bls-heartbeat-server echo 重启服务: pm2 restart web-bls-heartbeat-server echo 停止服务: pm2 stop web-bls-heartbeat-server echo 实时监控: pm2 monit echo. pause