基于 SOC 职业分类
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/prisma/cursor-plugin --skill prisma-upgrade-v7-esm-support命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| 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.