diff --git a/lerna.json b/lerna.json index 41d22fac..51669401 100644 --- a/lerna.json +++ b/lerna.json @@ -4,6 +4,6 @@ "useWorkspaces": true, "version": "independent", "publish": { - "ignoreChanges": ["ignored-file", "*.md"] + "ignoreChanges": ["ignored-file", "*.md", "example/*.ts"] } } diff --git a/packages/prisma-client/README.md b/packages/prisma-client/README.md index 6cd85503..9d4edd48 100644 --- a/packages/prisma-client/README.md +++ b/packages/prisma-client/README.md @@ -2,8 +2,4 @@ ## Useage -```shell -npx prisma migrate dev --name init -``` - -If sqlite database exist in you local, please use `npx prisma db push`. +Read [@eagleuse/eagleuse](https://www.npmjs.com/package/@eagleuse/eagleuse). diff --git a/packages/prisma-client/lib/index.ts b/packages/prisma-client/lib/index.ts index f7b467a0..c3f524b3 100644 --- a/packages/prisma-client/lib/index.ts +++ b/packages/prisma-client/lib/index.ts @@ -1,9 +1,24 @@ import { PrismaClient } from "@prisma/client"; +import _ from "lodash"; export * from "@prisma/client"; +import chokidar from "chokidar"; let prisma: PrismaClient; +let watchDBFile = false; + +const updatePrismaClient = _.debounce(() => { + prisma.$disconnect(); + prisma = new PrismaClient(); +}, 5000); export const getPrisma = () => { + const { DATABASE_URL } = process.env; + if (DATABASE_URL && !watchDBFile) { + chokidar.watch(DATABASE_URL.replace("file:", "").split("db")[0] + "db").on("change", updatePrismaClient); + + watchDBFile = true; + } + if (!prisma) { prisma = new PrismaClient(); } diff --git a/packages/prisma-client/package.json b/packages/prisma-client/package.json index e158c476..043b6f62 100644 --- a/packages/prisma-client/package.json +++ b/packages/prisma-client/package.json @@ -33,6 +33,8 @@ }, "dependencies": { "@prisma/client": "^4.10.1", + "chokidar": "^3.5.3", + "lodash": "^4.17.21", "prisma": "^4.10.1" }, "main": "./dist/index.js", @@ -44,5 +46,9 @@ "require": "./dist/index.js" } }, - "gitHead": "90d70b524804295a65079e065f1edc16cc70833b" + "gitHead": "90d70b524804295a65079e065f1edc16cc70833b", + "devDependencies": { + "@types/lodash": "^4.14.191", + "@types/node": "^18.14.6" + } } diff --git a/packages/prisma-client/vite.config.ts b/packages/prisma-client/vite.config.ts index b50901b9..3636b782 100644 --- a/packages/prisma-client/vite.config.ts +++ b/packages/prisma-client/vite.config.ts @@ -21,11 +21,13 @@ export default defineConfig({ }, rollupOptions: { // 确保外部化处理那些你不想打包进库的依赖 - external: ["prisma", "@prisma/client"], + external: ["prisma", "@prisma/client", "lodash", "chokidar"], output: { // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量 globals: { prisma: "prisma", + lodash: "_", + chokidar: "chokidar", "@prisma/client": "PrismaClient", }, },