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

TurboRepo+Next.js+Prisma+TRPC构建类型错误求助

TurboRepo+Next.js+Prisma+TRPC构建类型错误问题

我正在开发Web应用convoform.com,基于TurboRepo+Next.js+Prisma+TRPC架构搭建,本地执行pnpm dev可正常运行,但执行pnpm build时出现如下类型错误:

web:build: Type error: The inferred type of 'api' cannot be named without a reference to '../../../../packages/db/node_modules/@prisma/client/runtime/library'. This is likely not portable. A type annotation is necessary.

完整构建日志:

> turbo build

• Packages in scope: @convoform/api, @convoform/db, @convoform/eslint-config, @convoform/tsconfig, @convoform/ui, web
• Running build in 6 packages
• Remote caching disabled
@convoform/db:db:generate: cache bypass, force executing 724a3682c1a2d93d
@convoform/db:db:generate: 
@convoform/db:db:generate: > @convoform/db@0.0.0 db:generate /Users/utkarshanand/Development/personal/smart-form-wizard/packages/db
@convoform/db:db:generate: > prisma generate
@convoform/db:db:generate: 
@convoform/db:db:generate: Prisma schema loaded from prisma/schema.prisma
@convoform/db:db:generate: 
@convoform/db:db:generate: ✔ Generated Prisma Client (v5.8.1) to ./../../node_modules/.pnpm/@prisma+client@5.8.1_prisma@5.8.1/node_modules/@prisma/client in 92ms
@convoform/db:db:generate: 
@convoform/db:db:generate: Start using Prisma Client in Node.js (See: https://pris.ly/d/client)
@convoform/db:db:generate: ```
@convoform/db:db:generate: import { PrismaClient } from '@prisma/client'
@convoform/db:db:generate: const prisma = new PrismaClient()
@convoform/db:db:generate: ```
@convoform/db:db:generate: or start using Prisma Client at the edge (See: https://pris.ly/d/accelerate)
@convoform/db:db:generate: ```
@convoform/db:db:generate: import { PrismaClient } from '@prisma/client/edge'
@convoform/db:db:generate: const prisma = new PrismaClient()
@convoform/db:db:generate: ```
@convoform/db:db:generate: 
@convoform/db:db:generate: See other ways of importing Prisma Client: http://pris.ly/d/importing-client
@convoform/db:db:generate: 
@convoform/db:db:generate: ┌─────────────────────────────────────────────────────────────┐
@convoform/db:db:generate: │  Deploying your app to serverless or edge functions?        │
@convoform/db:db:generate: │  Try Prisma Accelerate for connection pooling and caching.  │
@convoform/db:db:generate: │  https://pris.ly/cli/accelerate                             │
@convoform/db:db:generate: └─────────────────────────────────────────────────────────────┘
@convoform/db:db:generate: 
web:build: cache miss, executing 47d378c71dc23084
web:build: 
web:build: > web@0.2.1 build /Users/utkarshanand/Development/personal/smart-form-wizard/apps/web
web:build: > next build
web:build: 
web:build:    ▲ Next.js 14.1.0
web:build:    - Environments: .env.local
web:build:    - Experiments (use at your own risk):
web:build:      · swcPlugins
web:build: 
web:build:    Creating an optimized production build ...
web:build:  ✓ Compiled successfully
web:build:    Linting and checking validity of types ...
web:build: Failed to compile.
web:build: 
web:build: ./src/trpc/server.ts:35:14
web:build: Type error: The inferred type of 'api' cannot be named without a reference to '../../../../packages/db/node_modules/@prisma/client/runtime/library'. This is likely not portable. A type annotation is necessary.
web:build: 
web:build:   33 | });
web:build:   34 |
web:build: > 35 | export const api = createTRPCProxyClient<AppRouter>({
web:build:      |              ^
web:build:   36 |   transformer: superjson,
web:build:   37 |   links: [
web:build:   38 |     loggerLink({
web:build:  ELIFECYCLE  Command failed with exit code 1.
web:build: ERROR: command finished with error: command (/Users/utkarshanand/Development/personal/smart-form-wizard/apps/web) /Users/utkarshanand/.volta/bin/pnpm run build exited (1)
web#build: command (/Users/utkarshanand/Development/personal/smart-form-wizard/apps/web) /Users/utkarshanand/.volta/bin/pnpm run build exited (1)

 Tasks:    1 successful, 2 total
Cached:    0 cached, 2 total
  Time:    40.395s 
Failed:    web#build

 ERROR  run failed: command  exited (1)
 ELIFECYCLE  Command failed with exit code 1.

我已经尝试调整tsconfig等各种配置,但均无效。发现若不在TRPC包的context中使用Prisma Client,该错误就会消失,相关代码位于api包的server/api/trpc.ts文件第33行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 21:43:17