pnpm依赖安装失败解决|pnpm项目从一个文件夹复制到另一个文件夹运行失败问题解决-以vbenAdmin项目为例

1 前言

最近在使用vben admin项目迁移时,从一个文件夹复制到另一个文件夹运行不起来,排查了一天,终于把问题排查出来了,特地记录一下,便于自己看也便于大家看。

使用项目安装包版本:

v2.11.5 https://github.com/vbenjs/vue-vben-admin/tags

2 解决方案

2.1 软链接问题解决

问题 : pnpm 使用硬链接或符号链接来管理 node_modules 中的依赖项。如果链接路径在新的文件夹或文件系统中失效,可能会导致依赖解析失败。

解决方法: 尝试删除并重新安装所有依赖,确保链接正确创建。

复制代码
rm -rf node_modules pnpm-lock.yaml

node_modules文件夹一定要全部删除,pnpm-lock.yaml文件也要删除,上述是用命令删除的,也可以自己手动删(所有的node_modules都要删)

2.2 文件路径过长问题

问题: 在 Windows 系统上,文件路径过长(超过 260 个字符)可能导致文件系统问题,导致文件无法被正确访问。

解决方法 : 尝试将项目目录移动到一个路径较短的位置,比如 C:\Projects\my-project,然后重新安装依赖。

node_modules文件夹里面的内容路径会很长,所以整个项目文件夹所在路径不宜过长,否则路径可能会超过260个字符。

2.3 pnpm缓存问题

问题 : pnpm 的缓存可能导致一些包没有被正确更新或安装。

解决方法 : 清除 pnpm 的缓存:

依次执行下面命令

  • 清理未使用的缓存包

    pnpm store prune

  • 清空整个 pnpm 的缓存存储库

    pnpm store clear

2.4 pnpm缓存深度清理

执行下面这句话:

复制代码
pnpm store path

然后我们看到这个路径

进入这个目录,将这3个文件夹都手动删除

2.5 pnpm install

删完之后,执行pnpm install

复制代码
pnpm install

2.6 pnpm dev

等待依赖安装完毕后,我们执行pnpm dev

复制代码
pnpm dev

程序运行成功

3 pnpm 安装依然失败解决方案

当我们试了各种方法还是不行,诶?这个时候我们返璞归真,是不是我们的pnpm的源下载不了的原因呢?国内的pnpm下载出现网络相关的问题还是挺多的,那么让我们来替换成国内专属的pnpm源试试

3.1 国内可用源

3.1.1 淘宝pnpm源

复制代码
https://registry.npmmirror.com

3.1.2 腾讯云pnpm源

复制代码
https://mirrors.cloud.tencent.com

3.1.3 cnpm源

复制代码
https://r.cnpmjs.org/

3.2 设置国内可用源命令

复制代码
pnpm config set registry https://registry.npmmirror.com

3.3 查看设置的源

复制代码
pnpm config get registry

返回信息内容是你刚刚设置地址,即设置成功。

3.4 再次pnpm install

ok,pnpm相关依赖在徐徐下载,我的终于又又装成功了~

4 遗留的瑕疵

项目虽然可以成功运行了,也可以正常写代码的了,但是终端还有几个warning ,如果有大佬知道如何解决也可以指点一下,感谢~

相关推荐
喜欢敲代码的程序员27 分钟前
SpringBoot+Mybatis+MySQL+Vue+ElementUI前后端分离版:项目搭建(一)
spring boot·mysql·elementui·vue·mybatis
foxhuli22937 分钟前
禁止ifrmare标签上的文件,实现自动下载功能,并且隐藏工具栏
前端
青皮桔1 小时前
CSS实现百分比水柱图
前端·css
失落的多巴胺1 小时前
使用deepseek制作“喝什么奶茶”随机抽签小网页
javascript·css·css3·html5
DataGear1 小时前
如何在DataGear 5.4.1 中快速制作SQL服务端分页的数据表格看板
javascript·数据库·sql·信息可视化·数据分析·echarts·数据可视化
影子信息1 小时前
vue 前端动态导入文件 import.meta.glob
前端·javascript·vue.js
青阳流月1 小时前
1.vue权衡的艺术
前端·vue.js·开源
样子20181 小时前
Vue3 之dialog弹框简单制作
前端·javascript·vue.js·前端框架·ecmascript
kevin_水滴石穿1 小时前
Vue 中报错 TypeError: crypto$2.getRandomValues is not a function
前端·javascript·vue.js
翻滚吧键盘1 小时前
vue文本插值
javascript·vue.js·ecmascript