Loading...
Loading...
Compare original and translation side by side
Edit your data contract. Prisma handles the rest.
@prisma-next/vite-plugin-contract-emitprisma-next contract emitvite.config.ts编辑你的数据合约,其余工作由 Prisma 处理。
@prisma-next/vite-plugin-contract-emitprisma-next contract emitvite.config.tsvite.config.ts@vitejs/*vite.config.ts@vitejs/*db.tsprisma-next-runtimeprisma-next-feedbackdb.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 emitprebuildcontract emitcontract.jsoncontract.d.ts^7.0.0 || ^8.0.0executeContractEmitcontract.d.tscontract.json@prisma-next/cli/control-apivite devvite buildprebuildprisma-next contract emitpnpm add -D @prisma-next/vite-plugin-contract-emitnpm install --save-devyarn add -Dbun add -dpnpm add -D @prisma-next/vite-plugin-contract-emitnpm install --save-devyarn add -Dbun add -dvite.config.tsvite.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.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'plugins: [
prismaVitePlugin('prisma-next.config.ts', {
debounceMs: 150, // 重新生成合约的延迟时间(默认 150ms)
logLevel: 'info', // 日志级别:'silent' | 'info' | 'debug'(默认 'info')
}),
],logLevel: 'debug''info'vite dev[prisma-next] emitted contract.d.ts + contract.jsonprisma/schema.pslvite 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 buildprebuildbuildvite buildprisma-next contract emit// package.json
{
"scripts": {
"prebuild": "prisma-next contract emit",
"build": "vite build"
}
}pnpm buildbuildprebuild@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-demo@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 installschema.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-feedback@prisma-next/next-plugin-*package.jsonprebuildprisma-next contract emittsx --watchprisma-next-feedbackexecuteContractEmit@prisma-next/cli/control-apivite-plugin-contract-emitprisma-next-feedbackvite buildvite devprisma-next contract emitprebuildvite buildprisma-next-feedbackprisma-next-feedbackprisma-next.config.tspnpm ls vitevite devprebuildprisma-next contract emitvite buildprisma-next-feedback@prisma-next/next-plugin-contract-emitprisma-next.config.tspnpm ls vitevite devprebuildprisma-next contract emitvite buildprisma-next-feedback@prisma-next/next-plugin-contract-emit