You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vercel部署T3-Stack应用遇TRPC 405错误及段错误求助

解决方案:T3-Stack(TRPC+Prisma)部署Vercel后405+段错误问题

根源定位

日志中的segmentation fault(段错误)是核心问题,由Prisma Client与CLI版本不一致导致引擎兼容性故障,405错误是服务崩溃后的次生错误,并非CORS或请求方法配置问题。

优先修复步骤(针对Prisma段错误)

  1. 统一Prisma版本
    日志显示@prisma/client@5.8.1与prisma@5.9.1版本不匹配,执行以下命令对齐版本:

    pnpm add prisma@5.8.1 @prisma/client@5.8.1
    # 或直接升级到最新兼容版本
    pnpm add prisma@latest @prisma/client@latest
    

    重新生成Prisma Client:

    pnpm prisma generate
    
  2. 配置Prisma适配Vercel环境
    在prisma/schema.prisma中添加二进制目标配置,确保引擎适配Vercel的RHEL环境:

    generator client {
      provider = "prisma-client-js"
      binaryTargets = ["rhel-openssl-1.0.x", "native"]
    }
    
  3. 确保Vercel构建时生成Prisma Client
    修改package.json的build脚本,加入prisma generate:

    "scripts": {
      "build": "prisma generate && next build",
      // 其他脚本...
    }
    

    同时在Vercel项目设置的「Build & Development Settings」中,将Package Manager设置为pnpm。

TRPC 405错误后续验证

解决段错误后,405问题通常会自动消失。若仍存在:

  • 删除next.config.js和vercel.json中的重复CORS配置,TRPC的Next.js适配器已默认处理OPTIONS请求,重复配置易引发冲突。
  • 检查TRPC API路由文件(app/api/trpc/[trpc]/route.ts或pages/api/trpc/[trpc].ts),确保适配器配置正确,示例:
    import { fetchRequestHandler } from '@trpc/server/adapters/fetch';
    import { appRouter } from '../../../server/api/root';
    import { createTRPCContext } from '../../../server/api/trpc';
    
    const handler = (req: Request) =>
      fetchRequestHandler({
        endpoint: '/api/trpc',
        req,
        router: appRouter,
        createContext: createTRPCContext,
      });
    
    export { handler as GET, handler as POST };
    

应急重构方案(若Prisma问题无法快速解决)

替换Prisma为Drizzle ORM,适配T3-Stack且无二进制引擎依赖,迁移成本低:

  1. 安装依赖:
    pnpm add drizzle-orm drizzle-kit pg # 以PostgreSQL为例,根据数据库替换驱动
    
  2. 将Prisma Schema转换为Drizzle的TypeScript Schema文件(可手动转换或使用Drizzle迁移工具)。
  3. 在TRPC路由中替换Prisma Client调用为Drizzle查询语句。
  4. 重新部署到Vercel,无需额外配置二进制引擎。

内容的提问来源于stack exchange,提问作者KaanDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 05:25:03