事情是这样的,用的开源pure-admin 的框架,用的是pnpm,本地环境都是可以的,但是发布到生成就报以下错误

 

 然后看部署参数,是这样的,强制用了lock文件,本来也没问题

 报错的意思是json 文件跟pnpm-lock.json 文件不匹配

但是本地看着是匹配的,随便挑选几个包版本看着也是一致的

然后重新删除本地 node_modules,重新生成pnpm-lock.json ,本地可以,推到测试不行

最后紧急解决,用了pnpm install --no-frozen-lockfile 文件,发布提测成功,但是这样不是长久之计。

 终于机智的我,想到可能pnpm版本导致的问题嘛,毕竟node的版本是一样的,都是16.18.1,于是打印了pnpm版本

 

 果然版本不一样,我本地pnpm 是6.11.0的,我卸载并且重新安装了8.10.0

本地卸载 npm rm -g pnpm

本地重新安装 npm install  pnpm@8.10.0 -g

重新安装完,果然复现了生产的问题

 

然后重新删除了本地的pnpm-lock.yaml 文件,并且删除node_modules 重新生成,执行pnpm install

生成新的 pnpm-lock.yaml 文件,本地就好啦

然后推送到生产环境,就好啦,不用再改成 --no-frozen-lockfile 啦

 撒花撒花撒花