#!/bin/bash echo "🚀 开始部署 Remix 项目..." # 清理旧的构建文件 echo "🧹 清理旧的构建文件..." rm -rf build/ rm -rf public/build/ # 安装依赖(确保 dotenv 在生产环境中可用) echo "📦 安装依赖..." npm install # 构建项目 echo "🔨 构建项目..." npm run build # 检查 .env 文件是否存在 if [ ! -f .env ]; then echo "⚠️ 警告: .env 文件不存在!" echo "请确保 .env 文件包含以下变量:" echo "NEXT_PUBLIC_API_URL=" echo "NEXT_PUBLIC_APP_ID=" echo "NEXT_PUBLIC_APP_KEY=" echo "JWT_SECRET=" exit 1 fi # 检查 JWT_SECRET 是否配置 if ! grep -q "^JWT_SECRET=" .env; then echo "⚠️ 警告: .env 文件中未配置 JWT_SECRET!" echo "JWT_SECRET 用于签名和验证 JWT token,是必需的安全配置。" echo "请在 .env 文件中添加:" echo "JWT_SECRET=your-strong-random-secret-key" echo "" echo "可以使用以下命令生成强随机密钥:" echo "npm run generate:jwt-secret" exit 1 fi echo "✅ 环境变量检查通过" # 创建日志目录 mkdir -p logs # 打包部署文件 echo "📦 打包部署文件..." tar -czvf docreview-frontend-deploy.tar.gz \ .env \ build/ \ public/build/ \ node_modules/ \ package.json \ package-lock.json \ ecosystem.config.cjs \ logs/ echo "✅ 部署包创建完成: docreview-frontend-deploy.tar.gz" echo "" echo "📋 部署说明:" echo "1. 将 docreview-frontend-deploy.tar.gz 上传到服务器" echo "2. 解压: tar -xzvf docreview-frontend-deploy.tar.gz" echo "3. 启动方式: ./node_modules/.bin/pm2 start ecosystem.config.cjs"