بنقرة واحدة
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.