VSCode执行code .报EPERM:uv_cwd权限错误无法打开项目问题求助
问题根因
这个报错和VSCode损坏、npm缓存异常没有任何关系,核心原因是你执行命令的终端会话,持有的当前工作目录(CWD)句柄已经失效。
你离开的两分钟里,运行的项目脚本大概率触发了项目根目录的删除重建、重命名、权限修改,或者对应磁盘挂载点临时异常——终端界面看起来还停在foo-bar目录下,但内核已经找不到这个路径的有效索引,所有需要读取当前工作目录的操作(包括code .、甚至基础的pwd命令)都会抛出这个EPERM错误。
从上级目录直接指定路径执行code FizzBuzz/foo-bar能正常打开,就是因为这个调用方式直接传了有效路径字符串给VSCode,不需要读取终端已经失效的cwd句柄。
修复操作
- 切到报错的终端窗口,直接执行
cd ~退回用户主目录,或者连续执行cd ..向上退目录,直到执行pwd能正常输出路径、无报错即可。 - 重新通过
cd ~/Desktop/FizzBuzz/foo-bar进入项目目录,此时终端会拿到新的有效目录句柄,再执行code .就能正常打开项目。 - 如果重新进入目录后仍报错,执行
ls -ld ~/Desktop/FizzBuzz/foo-bar检查当前用户对该目录是否有读、执行权限,权限缺失的话执行chmod u+rwx ~/Desktop/FizzBuzz/foo-bar补全权限即可。
补充说明
你之前尝试的重装VSCode、强制清理npm缓存两个操作完全不涉及cwd句柄失效的问题,自然无法解决故障。后续如果再遇到同类报错,可以先在当前终端执行pwd验证,如果返回getcwd相关的目录读取错误,直接按上述步骤重进目录即可,不需要重装任何软件。
日常写项目脚本时,不要写直接删除/重命名项目根目录的逻辑,这类操作很容易导致所有停在该目录下的终端、编辑器进程出现cwd句柄失效问题。
内容的提问来源于stack exchange,提问作者mstephen19
相关产品推荐
相关产品推荐

