prisma-upgrade-v7-esm-support

от prisma

Поддержка ESM. Справочная информация при использовании этой функции Prisma.

npx skills add https://github.com/prisma/cursor-plugin --skill prisma-upgrade-v7-esm-support

ESM Support

Prisma ORM v7 ships as an ES module only. Your project must be configured for ESM.

Required Changes

package.json

Add the type field:

{
  "type": "module",
  "scripts": {
    "build": "tsc",
    "start": "node dist/index.js"
  }
}

tsconfig.json

Configure for ESM:

{
  "compilerOptions": {
    "module": "ESNext",
    "moduleResolution": "bundler",
    "target": "ES2023",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "outDir": "dist"
  },
  "include": ["src/**/*", "prisma/**/*"]
}

Alternative: Node16/NodeNext

{
  "compilerOptions": {
    "module": "Node16",
    "moduleResolution": "Node16",
    "target": "ES2022"
  }
}

Import Syntax Changes

Named imports

// ESM (v7)
import { PrismaClient } from '../generated/client'

// Not: require()

File extensions

With moduleResolution: "Node16", add .js extensions:

import { helper } from './utils/helper.js'

With moduleResolution: "bundler", extensions are optional.

Minimum Versions

RequirementMinimum Version
Node.js20.19.0
TypeScript5.4.0

CommonJS Compatibility

If you must use CommonJS:

Dynamic import

// CommonJS file
async function main() {
  const { PrismaClient } = await import('../generated/client.js')
  const prisma = new PrismaClient()
}

Separate ESM file

Create an ESM wrapper:

// prisma.mjs
import { PrismaClient } from '../generated/client'
export const prisma = new PrismaClient()

Framework Considerations

Next.js

Next.js supports ESM. Ensure next.config.jsnext.config.mjs:

// next.config.mjs
export default {
  // config
}

Express

Update entry point:

// index.js (with "type": "module")
import express from 'express'
import { PrismaClient } from '../generated/client'

const app = express()
const prisma = new PrismaClient()

Jest

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.

Troubleshooting

"ERR_REQUIRE_ESM"

Your code is using require() on an ESM module. Switch to import.

"Cannot use import statement outside a module"

Add "type": "module" to package.json.

TypeScript compilation errors

Ensure module and moduleResolution are set correctly in tsconfig.json.

Больше skills от prisma

prisma-cli-migrate-reset
prisma
prisma migrate reset
official
prisma-cli-validate
prisma
prisma validate. Справочная информация при использовании этой функции Prisma.
official
prisma-next-extension-upgrade
prisma
Upgrade Prisma Next in your extension. Bumps every `@prisma-next/*` dependency to the requested target (or npm `latest`), runs the per-transition upgrade…
official
adr-review
prisma
Проверить один или несколько ADR свежим взглядом (как участник команды без предварительного контекста), выявить проблемы в повествовании и структуре, затем переписать их. Используйте, когда…
official
prisma-next-upgrade
prisma
Upgrade Prisma Next in your app. Bumps every `@prisma-next/*` dependency from the version pinned in the lockfile to the requested target (or npm `latest`),…
official
prisma-cli
prisma
Полное руководство по командам, опциям и рабочим процессам Prisma CLI для настройки, миграций и операций с базами данных. Охватывает более 20 команд, сгруппированных по приоритету: настройка (init), генерация (generate), разработка (dev), операции с базами данных (db pull/push/seed/execute) и миграции (migrate dev/deploy/reset/status/diff/resolve). Включает изменения в Prisma 7.x: новый файл конфигурации prisma.config.ts, удаленные флаги (--skip-generate, --skip-seed, --schema, --url) и явные...
official
prisma-client-api
prisma
Полный справочник API Prisma Client для запросов к моделям, операций CRUD, фильтрации, связей и транзакций. Охватывает 17 методов запросов к моделям, включая findUnique, findMany, create, update, delete, upsert и массовые операции с вариантами возврата. Предоставляет опции запросов для формирования результатов: select, include, omit, orderBy, take, skip, cursor и distinct. Включает скалярные и логические операторы фильтрации (equals, in, contains, startsWith, lt, gt), а также фильтры по связям (some,...
official
prisma-compute
prisma
Prisma Compute deployment and hosting guide. Use whenever the user mentions Prisma Compute, `prisma.compute.ts`, `defineComputeConfig`, deploying or hosting a Prisma app, `@prisma/cli app deploy`, `compute:deploy`, `create-prisma --deploy`, `PRISMA_SERVICE_TOKEN`, `auth workspace`, Compute apps/deployments/build logs/domains, `@prisma/cli agent install`, localhost vs `0.0.0.0`, deploy port binding, or framework deploy readiness for Hono, Elysia, Next.js, TanStack Start, Astro, Nuxt, Svelte,...
developmentdevopsofficial