生成 Prisma Client
Prisma Client 是一個根據你的資料庫 schema 定製的生成式資料庫客戶端。預設情況下,Prisma Client 會生成到 node_modules/.prisma/client 資料夾中,但我們強烈建議你指定一個輸出位置。
在 Prisma ORM 7 中,Prisma Client 預設將不再生成到 node_modules 中,並且將需要定義一個輸出路徑。有關如何定義輸出路徑的更多資訊,請參閱下文。
生成和例項化 Prisma Client
-
確保你已在你的機器上安裝 Prisma CLI。
npm install prisma --save-dev -
將以下
generator定義新增到你的 Prisma schema 中generator client {
provider = "prisma-client-js"
output = "app/generated/prisma/client"
}注意請隨意自定義輸出位置以匹配你的應用程式。常見的目錄有
app、src,甚至是你的專案根目錄。 -
安裝
@prisma/clientnpm 包npm install @prisma/client -
使用以下命令生成 Prisma Client
prisma generate -
你現在可以在程式碼中例項化 Prisma Client 了
import { PrismaClient } from 'app/generated/prisma/client'
const prisma = new PrismaClient()
// use `prisma` in your application to read and write data in your DB
重要:在每次更改 Prisma schema 後,你需要重新執行
prisma generate命令來更新生成的 Prisma Client 程式碼。
以下是 Prisma Client 典型生成工作流程的圖示

Prisma Client 的位置
我們強烈建議你定義一個自定義的 output 路徑。在 Prisma ORM 版本 6.6.0 中,不定義 output 路徑將導致警告。在 Prisma ORM 7 中,此欄位將是必需的。
使用自定義 output 路徑
你還可以在 generator 配置中指定一個自定義的 output 路徑,例如(假設你的 schema.prisma 檔案位於預設的 prisma 子資料夾中)
generator client {
provider = "prisma-client-js"
output = "../src/generated/client"
}
在該 schema 檔案上執行 prisma generate 後,Prisma Client 包將位於
./src/generated/client
從自定義位置匯入 PrismaClient(例如,從名為 ./src/script.ts 的檔案)
import { PrismaClient } from './generated/client'
為了更好地相容 ECMAScript modules (ESM) 並確保 Prisma ORM 在不同 Node.js 執行時中的一致行為,你還可以使用prisma-client 生成器(預覽版)。此生成器專門設計用於處理模組解析和執行時變體方面的常見挑戰,提供更流暢的整合體驗並減少與打包工具的摩擦。
@prisma/client npm 包
@prisma/client npm 包由兩個主要部分組成
@prisma/client模組本身,僅在你重新安裝包時發生變化.prisma/client資料夾,這是從你的 schema 生成的唯一 Prisma Client 的預設位置
@prisma/client/index.d.ts 匯出 .prisma/client
export * from '.prisma/client'
這意味著你仍然在自己的 .ts 檔案中匯入 @prisma/client
import { PrismaClient } from '@prisma/client'
Prisma Client 是從你的 Prisma schema 生成的,對你的專案來說是獨一無二的。每次你更改 schema(例如,透過執行schema 遷移)並執行 prisma generate 時,Prisma Client 的程式碼都會發生變化

.prisma 資料夾不受 Node.js 包管理器中修剪的影響。