一键导入
prisma-upgrade-v7-esm-support
ESM Support. Reference when using this Prisma feature.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
ESM Support. Reference when using this Prisma feature.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
prisma db execute. Reference when using this Prisma feature.
prisma db pull. Reference when using this Prisma feature.
prisma db push. Reference when using this Prisma feature.
prisma db seed. Reference when using this Prisma feature.
prisma debug. Reference when using this Prisma feature.
prisma dev. Reference when using this Prisma feature.
| name | prisma-upgrade-v7-esm-support |
| description | ESM Support. Reference when using this Prisma feature. |
| license | MIT |
| metadata | {"author":"prisma","version":"7.0.0"} |
Prisma ORM v7 ships as an ES module only. Your project must be configured for ESM.
Add the type field:
{
"type": "module",
"scripts": {
"build": "tsc",
"start": "node dist/index.js"
}
}
Configure for ESM:
{
"compilerOptions": {
"module": "ESNext",
"moduleResolution": "bundler",
"target": "ES2023",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"outDir": "dist"
},
"include": ["src/**/*", "prisma/**/*"]
}
{
"compilerOptions": {
"module": "Node16",
"moduleResolution": "Node16",
"target": "ES2022"
}
}
// ESM (v7)
import { PrismaClient } from '../generated/client'
// Not: require()
With moduleResolution: "Node16", add .js extensions:
import { helper } from './utils/helper.js'
With moduleResolution: "bundler", extensions are optional.
| Requirement | Minimum Version |
|---|---|
| Node.js | 20.19.0 |
| TypeScript | 5.4.0 |
If you must use CommonJS:
// CommonJS file
async function main() {
const { PrismaClient } = await import('../generated/client.js')
const prisma = new PrismaClient()
}
Create an ESM wrapper:
// prisma.mjs
import { PrismaClient } from '../generated/client'
export const prisma = new PrismaClient()
Next.js supports ESM. Ensure next.config.js → next.config.mjs:
// next.config.mjs
export default {
// config
}
Update entry point:
// index.js (with "type": "module")
import express from 'express'
import { PrismaClient } from '../generated/client'
const app = express()
const prisma = new PrismaClient()
Configure Jest for ESM:
{
"jest": {
"preset": "ts-jest/presets/default-esm",
"extensionsToTreatAsEsm": [".ts"],
"transform": {
"^.+\\.tsx?$": ["ts-jest", { "useESM": true }]
}
}
}
Or use Vitest which has native ESM support.
Your code is using require() on an ESM module. Switch to import.
Add "type": "module" to package.json.
Ensure module and moduleResolution are set correctly in tsconfig.json.