Prisma目录中query_engine-windows.dll.node.tmpxxxx临时文件
Prisma目录中query_engine-windows.dll.node.tmpxxxx临时文件有什么用,可以删除么
在lib\generated\prisma目录中看到类似query_engine-windows.dll.node.tmp1996、query_engine-windows.dll.node.tmp2072这样的文件,这是什么文件?
这些以 .tmpXXXX 结尾的文件是 Prisma 客户端在运行时生成的临时文件,通常出现在以下场景中:
1. 文件用途
它们是 Prisma Query Engine 的临时副本,在以下情况自动生成:
Prisma 客户端初始化时:当你的应用启动或 prisma generate 执行时,Prisma 会动态下载或验证与当前平台匹配的 Query Engine 二进制文件(如 query_engine-windows.dll.node)。
版本更新/引擎切换时:如果你切换了 Prisma 版本或数据库类型,Prisma 可能会生成临时文件用于替换旧引擎。
文件名中的 tmpXXXX(如 tmp1996)是随机后缀,确保临时文件不会冲突。
2. 为什么会有这些文件?
正常操作:Prisma 在启动时可能先创建临时文件,再通过原子操作(如 rename)将其替换为正式文件,确保过程安全。
意外残留:如果进程被强制终止(如开发服务器崩溃、手动终止、系统重启),临时文件可能未被自动清理。
3. 是否可以删除?
可以安全删除:这些文件在 Prisma 正常运行时不需要,尤其是当主文件(如 query_engine-windows.dll.node)已存在时。
建议操作:
rm lib/generated/prisma/query_engine-*.tmp*
4. 如何避免残留?
正常关闭应用:确保 Prisma 客户端正确关闭(如通过 prisma.$disconnect())。
配置清理脚本:在项目的 package.json 中添加一个清理命令:
"scripts": {
"clean:prisma": "rimraf lib/generated/prisma/*.tmp*"
}
5. 其他注意事项
版本兼容性:如果遇到引擎错误(如 Engine not found),尝试重新运行 prisma generate 或删除整个 generated 目录后重新生成。
防病毒软件干扰:某些安全软件可能误判引擎文件为威胁,导致生成失败。必要时将 prisma 目录加入白名单。
这些临时文件通常无害,但定期清理可以保持项目目录整洁。如果频繁出现大量残留,可能需要检查应用是否存在异常退出情况。