前端时间在创建一个uni项目的时候,使用pnpm install的时候,终端报了一个错误。
Error:EISDIR:illegal operation on a directory。
开始以为是目录没有权限,在使用管理权限后。发现没有任何效果。然后又去文件夹中将所有层级的目录改为可修改的权限。再次执行命令,还是没有达到预期的效果。
然后就跑过去问ai。给出的问题原因是依赖路径错误,系统没有权限,没有写入权限,被安全软件拦截。
我去,问题这么复杂的吗?没辙只能按照步骤去尝试着解决。
1、清除pnpm缓存,删除 node_moudles/.pnpm
pnpm store prune && pnpm cache clean --force
没有任何效果,不需要考虑此解决方法。
2、检查权限设置
上面已经试过了,没有任何的作用。
3、重装依赖
rm -rf node_modules pnpm-lock.yaml
pnpm install --shamefully-hoist
还是没有用,一整套流程下来,并没有解决我的问题,整的我已经怀疑人生了。都准备放弃了。想用另外一台电脑上已经运行正常的数据打包丢过来看有没有用。
在问deepseek的过程中,他一直在强调是目录权限问题,或者pnpm缓存有问题,给出的解决方案和思路也是从这两个方面去入手的。
后来在Google的时候看到一个文章里提到在windows下可能是硬盘格式的问题。如果硬盘格式是FAT32,而不是NTFS的就会出现该报错。然后也提到是权限的问题。
除了格式问题没有排查,其他都试过了。然后我就去项目所在的路径看了一下所在盘的格式。果然是FAT32的。然后发现该目录是个外接硬盘,包项目拷贝到系统盘后,在pnpm install 成功解决问题。
总结
最终通过确认硬盘的格式来解决了问题。所以后续遇到该问题的时候可以按照以下方式来尝试解决。
1、检查项目权限。
2、查看所在硬盘的格式,确认是FAT32还是NTFS。
3、清除pnpm缓存。