You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac系统下NVM报错无法使用NPM命令的问题求助

问题描述

用NVM近一年未出现问题,体验优于直接使用Node。但新建仓库后所有NPM命令失效,具体异常如下:

  1. 执行npm -v或npm install时抛出权限错误:
node:internal/bootstrap/switches/does_own_process_state:126
    cachedCwd = rawMethods.cwd();
                           ^
Error: EPERM: operation not permitted, uv_cwd
    at process.wrappedCwd [as cwd] (node:internal/bootstrap/switches/does_own_process_state:126:28)
    at Object.<anonymous> (/Users/****/.nvm/versions/node/v16.14.0/lib/node_modules/npm/node_modules/depd/index.js:25:24)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/Users/****/.nvm/versions/node/v16.14.0/lib/node_modules/npm/node_modules/agentkeepalive/lib/agent.js:6:19)
    at Module._compile (node:internal/modules/cjs/loader:1103:14) {
  errno: -1,
  code: 'EPERM',
  syscall: 'uv_cwd'
}
  1. 项目通过.nvmrc指定v16.14.0,执行nvm use时无法显示NPM版本:
Found 'project-path/.nvmrc' with version <v16.14.0>
Now using node v16.14.0 (npm v)
  1. 尝试升级NVM到0.39.2失败,执行curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash报错:
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Operation not permitted
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15916  100 15916    0     0  43223      0 --:--:-- --:--:-- --:--:-- 44334
=> nvm is already installed in /Users/****/.nvm, trying to update using git
=> fatal: Unable to read current working directory: Operation not permitted
Failed to update nvm with v0.39.2, run 'git fetch' in /Users/****/.nvm yourself.

手动在/Users/****/.nvm目录执行git fetch无报错,但所有问题依旧,当前NVM版本为0.38.0。

解决方案

核心问题是当前工作目录权限异常,导致Node/NVM无法读取路径信息,按以下步骤修复:

1. 修复项目目录权限

  • 先退出当前项目目录,回到用户主目录:
    cd ~
    
  • 检查项目目录的权限(替换project-path为实际路径):
    ls -ld project-path
    
  • 若目录所属用户或权限异常,执行修复命令:
    sudo chown -R $(whoami):staff project-path
    sudo chmod -R 755 project-path
    

2. 重新加载NVM并切换版本

  • 卸载当前激活的Node版本:
    nvm deactivate
    
  • 重新加载NVM配置:
    source ~/.nvm/nvm.sh
    
  • 再次切换到项目指定版本:
    nvm use
    
    此时应正常显示NPM版本,测试npm -v验证恢复情况。

3. 修复或重装对应Node版本

若上述步骤无效,说明该Node版本的NPM损坏:

  • 重装v16.14.0版本(自动修复NPM):
    nvm install 16.14.0 --reinstall-packages-from=16.14.0
    
  • 验证NPM:
    npm -v
    

4. 手动升级NVM

权限修复后,手动完成NVM升级:

  • 进入NVM目录:
    cd ~/.nvm
    
  • 拉取最新代码并切换到0.39.2版本:
    git fetch origin
    git checkout v0.39.2
    
  • 重新加载NVM:
    source ~/.nvm/nvm.sh
    
  • 验证版本:
    nvm --version
    

内容的提问来源于stack exchange,提问作者jared-leddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:20:36