【笔记】Prisma v7 + SQLite TS2305 及连锁 TS7006 问题

起因

今日在服务器上部署新服务的时候出现了如下错误

bash 复制代码
确认配置正确,开始部署?[y/N] y
[INFO] 安装依赖(保留 devDependencies:esbuild / prisma CLI 为构建期必需)...
Scope: all 6 workspace projects
Lockfile is up to date, resolution step is skipped
Already up to date
Done in 1.9s using pnpm v10.33.0
[INFO] 构建服务端(tsc --noEmit + esbuild 打包 → dist/main.js)...

> project@0.0.1 build:server /home/project/project
> pnpm --filter @project/server build


> @project/server@0.0.1 build /home/project/project/packages/server
> tsc --noEmit && node build.mjs

src/plugins/prisma.ts:4:10 - error TS2305: Module '"@prisma/client"' has no exported member 'PrismaClient'.

4 import { PrismaClient } from '@prisma/client'
           ~~~~~~~~~~~~

src/routes/orders.route.ts:23:52 - error TS7006: Parameter 'db' implicitly has an 'any' type.

23     const rows = await f.prisma.$transaction(async db => {
                                                      ~~

src/routes/orders.route.ts:31:37 - error TS7006: Parameter 'item' implicitly has an 'any' type.

31           const row = existing.find(item => item.id === ids[index])
                                       ~~~~

src/routes/orders.route.ts:35:44 - error TS7006: Parameter 'row' implicitly has an 'any' type.

35         return ids.map(id => existing.find(row => row.id === id)!)
                                              ~~~

src/routes/orders.route.ts:53:51 - error TS7006: Parameter 'db' implicitly has an 'any' type.

53     const row = await f.prisma.$transaction(async db => {
                                                     ~~

src/routes/orders.route.ts:70:39 - error TS7006: Parameter 'db' implicitly has an 'any' type.

70     await f.prisma.$transaction(async db => {
                                         ~~

src/routes/provider-events.route.ts:25:54 - error TS7006: Parameter 'db' implicitly has an 'any' type.

25     const result = await f.prisma.$transaction(async db => {

排查

这个时候我才想起来之前就碰到过,也花了时间确实解决了。

最大的问题是我忘记把过程记录下来了!!!

现在重新回想的话,首先我就是想到 TypeScript 版本和某个小版本的 Prisma 有问题。

从这方便着手,用当前包里 lock 的版本开新项目跑了一遍,发现 完全没问题

然后又想不会是和 node 某个小版本有关系吧?

再次跑了一次更换 node 版本 ,结果也是 完全没问题

这个时候同时也让 Ai 再次跑本地构建和检查,Ai 给出的结论也是本地构建和检查都通过了

然后就是再来思考是不是构建问题,直接开个空项目把构建流程搬过来

跑完就发现复现了,这时候让 Ai 开始介入,找到构建流程的差异

实际就是 Ai 之前帮我整理构建脚本优化的时候先构建服务,再初始化 Prisma

然后就触发了 TS2305 错误接着就连锁反应触发了 TS7006 的所有代码都类型错误的问题


原因

ok,那么这就清晰明了了,在构建流程顺序上重新调整 setup_database build_server 即可

rust 复制代码
install_deps -> build_server -> setup_database

改为如下

rust 复制代码
install_deps -> setup_database -> build_server

版权声明:

本文版权属于作者 林小帅,未经授权不得转载及二次修改。

转载或合作请在下方留言及联系方式。

相关推荐
王中阳Go12 分钟前
你那条三跳链路的单跳超时,是按压测的 p95 定的,还是拍出来的?
人工智能·后端·架构
Dumbness14 分钟前
订阅消息弹窗必须在用户点击里调:联调实验室里 timing 和 Mock 支付通知踩的坑
javascript·uni-app
时光不老杰15 分钟前
03 Netty 双通道长连接层
后端
HUANGZHENXUAN12319 分钟前
最大子矩阵和:从 O(n⁴) 到 O(n³) 的列压缩 + Kadane
c语言·前端
1360967572320 分钟前
报错指的地方,往往不是坏的地方:47 次故障的定位方法
后端
Gopher_HBo24 分钟前
cpuprof.go开关、缓冲区与记账
后端
黄连木笛33 分钟前
不改一行 Postman 源码,把它汉化了:Electron preload 注入 + fetch 拦截实战
javascript·electron
叼烟扛炮2 小时前
[LangChain] 学习笔记(03):打破失忆症——对话机制与上下文管理
java·前端·javascript·笔记·学习·langchain
特立独行的猫A3 小时前
13MB 单文件、一条命令变服务:把仓颉写的 cjh 内嵌进你的应用,当它的 AI 大脑
java·后端·python