con un clic
prisma-upgrade-v7-esm-support
ESM Support. Reference when using this Prisma feature.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
ESM Support. Reference when using this Prisma feature.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional 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.