2026-03-03 构建配置和依赖检查报告
1. 依赖项检查
1.1 apps/admin/package.json
发现问题:存在 Neon Auth 相关依赖
json
"@neondatabase/auth": "0.2.0-beta.1"位置:apps/admin/package.json:86
影响:该依赖会被打包到生产环境,导致运行时尝试加载鉴权功能
1.2 根目录 package.json
检查结果:未发现 Neon Auth 相关依赖
2. Nitro 配置检查
2.1 nitro.config.ts 中的鉴权配置
文件:apps/admin/nitro.config.ts
发现问题:
runtimeConfig 中的鉴权配置(第 56-58 行):
typescript/** Neon Auth 服务基础 URL */ neonAuthBaseUrl: getVercelEnv("NEON_AUTH_BASE_URL") || process.env.NEON_AUTH_BASE_URL || "", /** Neon Auth Cookie 密钥(至少 32 字符) */ neonAuthCookieSecret: getVercelEnv("NEON_AUTH_COOKIE_SECRET") || process.env.NEON_AUTH_COOKIE_SECRET || "",Cloudflare wrangler 配置中的鉴权环境变量(第 140-145 行):
typescript...(getVercelEnv("NEON_AUTH_BASE_URL") && { comm_admin_11__NEON_AUTH_BASE_URL: getVercelEnv("NEON_AUTH_BASE_URL"), }), ...(getVercelEnv("NEON_AUTH_COOKIE_SECRET") && { comm_admin_11__NEON_AUTH_COOKIE_SECRET: getVercelEnv("NEON_AUTH_COOKIE_SECRET"), }),
3. 环境变量检查
3.1 apps/admin/.env
发现问题:存在大量 Neon Auth 相关环境变量
Neon Auth 认证配置(第 38-51 行):
bash# Neon Auth 服务基础 URL NEON_AUTH_BASE_URL=https://ep-cold-surf-a1x1hkmn.neonauth.ap-southeast-1.aws.neon.tech/neondb/auth # Cookie 加密密钥(至少 32 字符) NEON_AUTH_COOKIE_SECRET=njwWxbW4uNsGoqm+QE8hufLX/xl8664iEaf3L/FTGoY= # 前端基础 URL(用于 OAuth 回调) PUBLIC_BASE_URL=http://localhost:8080OAuth 第三方登录配置(第 54-69 行):
bash# GitHub OAuth(可选) # GITHUB_CLIENT_ID=your_github_client_id # GITHUB_CLIENT_SECRET=your_github_client_secret # 微信小程序 OAuth(可选) # WECHAT_MINI_PROGRAM_APPID=your_appid # WECHAT_MINI_PROGRAM_SECRET=your_secret # OAuth 回调错误处理配置 OAUTH_SHOW_ERROR_DETAILS=false
4. 构建产物检查
4.1 构建产物目录
位置:apps/admin/.output/
检查结果:构建产物存在,且包含大量鉴权相关代码
4.2 构建产物中的鉴权 API 端点
发现问题:构建产物中存在 10 个鉴权相关的 API 端点
log
apps\admin\.output\server\_routes\api\auth\callback\$provider\get.mjs
apps\admin\.output\server\_routes\api\auth\migrate\post.mjs
apps\admin\.output\server\_routes\api\auth\sign_in\post.mjs
apps\admin\.output\server\_routes\api\auth\sign_out\post.mjs
apps\admin\.output\server\_routes\api\auth\forgot_password\post.mjs
apps\admin\.output\server\_routes\api\auth\migrate\verify\post.mjs
apps\admin\.output\server\_routes\api\auth\refresh\post.mjs
apps\admin\.output\server\_routes\api\auth\sign_up\post.mjs
apps\admin\.output\server\_routes\api\auth\oauth\$provider\get.mjs
apps\admin\.output\server\_routes\api\auth\me\get.mjs4.3 构建产物中的鉴权库
发现问题:构建产物中包含 4 个鉴权相关的库文件
log
.output/server/_chunks/auth-client.mjs
.output/server/_chunks/_libs/@neondatabase/auth.mjs
.output/server/_chunks/_libs/@supabase/auth-js.mjs
.output/server/_libs/better-auth.mjs4.4 源代码检查
检查结果:
apps/admin/server/目录中未发现任何鉴权相关文件apps/admin/server/目录中未发现任何@neondatabase/auth导入
结论:源代码已经清理干净,但构建产物未更新
5. 问题总结
5.1 根本原因
- 源代码已清理:
apps/admin/server/目录中的鉴权代码已被删除 - 构建产物未更新:
.output/目录中仍保留着旧的鉴权代码 - 生产环境部署旧代码:生产环境部署的是旧的构建产物,导致运行时尝试加载
@neondatabase/auth包
5.2 500 错误原因推测
生产环境访问 https://01s-11comm.ruan-cat.com/ 出现 500 错误,可能是因为:
- 构建产物中的鉴权代码尝试导入
@neondatabase/auth包 - 但该包在
package.json中仍然存在,可能在生产环境中加载失败 - 或者鉴权中间件/插件在启动时初始化失败
6. 建议
6.1 立即执行的清理操作
删除依赖:
bashcd apps/admin pnpm remove @neondatabase/auth清理 Nitro 配置:
- 删除
nitro.config.ts中的neonAuthBaseUrl和neonAuthCookieSecret配置 - 删除 Cloudflare wrangler 配置中的 Neon Auth 环境变量
- 删除
清理环境变量:
- 删除
.env文件中的 Neon Auth 相关配置(第 38-69 行)
- 删除
清理构建产物:
bashcd apps/admin rm -rf .output重新构建:
bashcd apps/admin pnpm build:prod重新部署:
bash# 根据部署平台选择对应命令 pnpm build:prod:cloudflare # Cloudflare pnpm build:prod:vercel # Vercel
6.2 验证步骤
- 构建后检查
.output/server/目录,确认不再包含鉴权相关文件 - 本地运行
pnpm preview测试构建产物 - 部署到生产环境后访问
https://01s-11comm.ruan-cat.com/验证
7. 附加说明
7.1 为什么源代码已清理但构建产物未更新
可能的原因:
- 删除源代码后未执行重新构建
- 或者构建缓存导致使用了旧的构建产物
- 或者部署流程中使用了缓存的构建产物
7.2 预防措施
建议在 CI/CD 流程中添加:
- 构建前清理
.output/目录 - 构建后验证构建产物中不包含已删除的代码
- 部署前运行集成测试