6.4 KiB
6.4 KiB
本地测试指南 - 推送前验证
✅ Vercel 配置检查(已通过)
检查结果:
- ✅
.vercelignore正确配置,会忽略所有后端文件 - ✅
vercel.json配置正确 - ✅ 前端文件完整:index.html, js/, css/, public/, views/
- ✅ 后端文件会被忽略:server/, docker/, scripts/
结论:Vercel 部署安全,不会上传后端代码
🧪 本地测试步骤
测试 1:前端模式(模拟 Vercel)
# 启动简单的 HTTP 服务器
python -m http.server 8000
# 或使用 Node.js
npx http-server -p 8000
# 访问 http://localhost:8000
测试项:
- 页面正常加载
- 可以打开文件选择
- localStorage 正常工作
- 所有现有功能正常
- 控制台无错误
测试 2:Docker 后端模式
2.1 检查 Docker 环境
docker --version
docker-compose --version
2.2 配置环境变量
cp .env.example .env
nano .env
最小配置:
DB_PASSWORD=test123456
JWT_SECRET=test-jwt-secret-minimum-32-characters-long
ADMIN_EMAIL=admin@test.local
ADMIN_PASSWORD=admin123456
2.3 启动 Docker
# 方式 1: 使用部署脚本
cd scripts
./deploy.sh
# 方式 2: 手动启动
docker-compose up -d
# 查看日志
docker-compose logs -f app
2.4 验证服务
# 健康检查
curl http://localhost:3000/api/health
# 访问前端
open http://localhost:3000
# 访问管理面板
open http://localhost:3000/admin
测试项:
- 所有容器正常运行
- 数据库连接成功
- API 健康检查通过
- 前端页面正常加载
- 可以注册用户
- 可以登录管理面板
- 数据保存到数据库
2.5 清理
# 停止服务
docker-compose down
# 完全清理(包括数据)
docker-compose down -v
🔍 关键验证点
验证 1:Vercel 不会受影响
测试方法:模拟 Vercel 只部署前端文件
# 创建临时目录,只复制前端文件
mkdir /tmp/vercel-test
cp index.html /tmp/vercel-test/
cp -r js css public views /tmp/vercel-test/
cd /tmp/vercel-test
# 启动测试
python -m http.server 8001
# 访问 http://localhost:8001
# 应该完全正常工作
验证 2:admin/ 目录是否需要
检查:
# admin/ 是否在 .vercelignore 中?
grep admin .vercelignore
结果:admin/ 没有被忽略,会部署到 Vercel
确认:这是对的,因为管理面板的 HTML 也可以在前端模式下查看(只是没有后端 API)
验证 3:存储适配器是否正确引入
# 检查 index.html
grep storage-adapter.js index.html
预期输出:
<script src="js/storage/storage-adapter.js"></script>
测试:
- 打开浏览器控制台
- 检查
window.storageAdapter是否存在 - 检查
window.DEPLOYMENT_MODE的值
🎯 快速测试脚本
一键测试脚本
#!/bin/bash
echo "=================================="
echo " Paper Burner X 本地测试"
echo "=================================="
echo ""
# 测试 1: 前端模式
echo "测试 1: 前端模式(模拟 Vercel)"
echo "启动 HTTP 服务器..."
python -m http.server 8000 &
SERVER_PID=$!
sleep 2
echo "→ 测试页面访问"
if curl -s http://localhost:8000 > /dev/null; then
echo "✅ 前端服务器启动成功"
else
echo "❌ 前端服务器启动失败"
fi
echo "→ 打开浏览器手动测试"
echo " 访问: http://localhost:8000"
read -p "前端测试完成后按回车继续..."
kill $SERVER_PID
echo ""
# 测试 2: Docker 模式
echo "测试 2: Docker 模式"
echo "→ 检查 Docker 环境"
if command -v docker &> /dev/null; then
echo "✅ Docker 已安装"
else
echo "❌ Docker 未安装,跳过 Docker 测试"
exit 0
fi
echo "→ 检查 .env 配置"
if [ ! -f ".env" ]; then
echo "⚠️ .env 不存在,创建默认配置"
cp .env.example .env
fi
read -p "是否启动 Docker 测试?(y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "→ 启动 Docker 服务"
docker-compose up -d
echo "→ 等待服务启动..."
sleep 10
echo "→ 测试 API"
if curl -s http://localhost:3000/api/health > /dev/null; then
echo "✅ Docker 服务启动成功"
echo " 访问: http://localhost:3000"
echo " 管理: http://localhost:3000/admin"
else
echo "❌ Docker 服务启动失败"
docker-compose logs app
fi
read -p "Docker 测试完成后按回车清理..."
docker-compose down
fi
echo ""
echo "=================================="
echo " 测试完成!"
echo "=================================="
✅ 测试通过标准
前端模式(Vercel)
- 页面正常加载
- 功能完全正常
- 无 JavaScript 错误
- localStorage 工作正常
Docker 模式
- 所有容器运行正常
- API 响应正常
- 可以注册/登录
- 数据持久化工作
无冲突验证
- 前端代码未被破坏
- 旧功能全部正常
- 没有引入 breaking changes
🚀 测试通过后
如果所有测试都通过,你可以安全地:
git add .
git commit -m "feat: add Docker support with full backend"
git push origin main
推送后监控:
- 立即检查 Vercel 部署状态
- 访问部署后的 URL
- 测试主要功能
- 如有问题立即 revert
🆘 如果测试失败
前端测试失败
# 检查是否有文件缺失
git status
# 恢复特定文件
git restore <file>
# 查看具体错误
浏览器控制台
Docker 测试失败
# 查看日志
docker-compose logs -f app
# 检查数据库
docker-compose logs postgres
# 重新构建
docker-compose down -v
docker-compose up --build
📞 现在做什么?
选择一个:
A) 运行快速前端测试(5 分钟)
python -m http.server 8000
# 手动测试功能
B) 运行完整测试(包括 Docker,15 分钟)
# 我帮你创建测试脚本
C) 我相信配置没问题,直接推送
git add .
git commit -m "feat: add Docker support"
git push origin main
你选哪个?