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

GitLab CI构建NestJS+Prisma项目时报TS2305:找不到User导出成员

NestJS + Prisma GitLab CI构建报错TS2305:模块'@prisma/client'无导出成员'User'

在配置使用Prisma的NestJS项目GitLab CI流水线时,出现TS2305: Module '@prisma/client' has no exported member 'User'错误。本地执行pnpm run build可正常完成,且已手动确认Prisma生成的index.d.ts中已将User作为类型导出。

相关配置与代码

.gitlab-ci.yml

image: node:latest

stages:
  - build

build:
  stage: build
  before_script:
    - corepack enable
    - corepack prepare pnpm@latest-8 --activate
    - pnpm config set store-dir .pnpm-store
  script:
    - pnpm install
    - npx prisma generate
    - pnpm run build
  cache:
    key:
      files:
        - pnpm-lock.yaml
    paths:
      - .pnpm-store
  artifacts:
    paths:
      - dist

user.models.ts

import { User } from "@prisma/client"; // CI构建失败的触发行
import { IsEmail, IsInt, IsNotEmpty, IsString } from "class-validator";

class UserModel implements User {
    @IsNotEmpty()
    @IsInt()
    id: number;

    @IsNotEmpty()
    @IsString()
    @IsEmail()
    email: string;

    @IsNotEmpty()
    @IsString()
    password: string;
}

手动验证脚本

cd ./node_modules/.prisma/client
cat index.d.ts
cd ../../..

解决方法

  • 用pnpx替代npx执行Prisma生成:避免包管理器环境不一致导致的生成问题,修改CI脚本中的命令为pnpx prisma generate
  • 清理缓存并强制重新安装:GitLab CI缓存可能保留旧的客户端文件,在pnpm install前添加清理步骤:
    pnpm store prune
    pnpm install --force
    
  • 指定Prisma生成输出路径:在prisma/schema.prisma中明确输出路径,确保生成文件位置正确:
    generator client {
      provider = "prisma-client-js"
      output   = "./node_modules/@prisma/client"
    }
    
  • 检查TypeScript配置:确保tsconfig.json的include数组包含Prisma生成的类型文件:
    {
      "include": [
        "src/**/*",
        "node_modules/.prisma/client/**/*"
      ]
    }
    
  • 清理旧生成文件后重新生成:在CI脚本中先删除旧的客户端文件,再执行生成命令:
    pnpm install
    rm -rf node_modules/.prisma/client
    pnpx prisma generate
    pnpm run build
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 10:20:20