Loading...
Loading...
Wire Prisma Next into the project's build system with the right build-tool plugin — Vite today via @prisma-next/vite-plugin-contract-emit (Vite 7 / 8); Next.js / Webpack / esbuild / Rollup / Turbopack are named as gaps rather than fabricated. Always offers the Vite plugin proactively when the project is using Vite. Use for vite plugin, vite-plugin, vite.config.ts, prismaVitePlugin, contract emit on save, HMR, hot reload contract, dev server, Next.js plugin, next plugin, withPrismaNext, webpack plugin, esbuild plugin, rollup plugin, build integration, dev server plugin, vite 7, vite 8.
npx skill4agent add prisma/prisma-next prisma-next-buildEdit your data contract. Prisma handles the rest.
@prisma-next/vite-plugin-contract-emitprisma-next contract emitvite.config.tsvite.config.ts@vitejs/*db.tsprisma-next-runtimeprisma-next-feedbackcontract emitcontract.jsoncontract.d.ts^7.0.0 || ^8.0.0executeContractEmitcontract.d.tscontract.json@prisma-next/cli/control-apivite devvite buildprisma-next contract emitprebuildpnpm add -D @prisma-next/vite-plugin-contract-emitnpm install --save-devyarn add -Dbun add -dvite.config.ts// vite.config.ts
import { defineConfig } from 'vite';
import { prismaVitePlugin } from '@prisma-next/vite-plugin-contract-emit';
export default defineConfig({
plugins: [prismaVitePlugin('prisma-next.config.ts')],
});prisma-next.config.tsschema.pslcontract.tsplugins: [
prismaVitePlugin('prisma-next.config.ts', {
debounceMs: 150, // delay before re-emitting (default 150)
logLevel: 'info', // 'silent' | 'info' | 'debug' (default 'info')
}),
],logLevel: 'debug''info'vite dev[prisma-next] emitted contract.d.ts + contract.jsonprisma/schema.pslvite buildprisma-next contract emit// package.json
{
"scripts": {
"prebuild": "prisma-next contract emit",
"build": "vite build"
}
}pnpm buildprebuildbuild@react-router/dev/vitevite.config.tsimport { reactRouter } from '@react-router/dev/vite';
import { prismaVitePlugin } from '@prisma-next/vite-plugin-contract-emit';
export default defineConfig({
plugins: [
reactRouter(),
prismaVitePlugin('prisma-next.config.ts'),
],
});examples/react-router-demoschema.pslprisma-next.config.tscontract.source.inputsprisma-next.config.tsvite buildprebuildprisma-next-debugpnpm install@prisma-next/next-plugin-*prisma-next contract emitprebuildpackage.jsontsx --watchprisma-next-feedbackexecuteContractEmit@prisma-next/cli/control-apivite-plugin-contract-emitprisma-next-feedbackvite buildvite devprebuildprisma-next contract emitvite buildprisma-next-feedbackprisma-next-feedbackprisma-next.config.tspnpm ls vitevite devprebuildprisma-next contract emitvite buildprisma-next-feedback@prisma-next/next-plugin-contract-emit