You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Mac环境下npm安装失败及checkPermissions写入权限错误求助

Hey there, let's tackle these npm issues on your Mac step by step—they're super common, so don't stress!

解决Mac上npm安装失败及checkPermissions权限错误

一、无法安装npm本身的解决方法

如果连npm都没法安装,大概率是系统自带的Node.js/npm损坏,或者安装方式导致的权限/版本问题,推荐这两种方案:

  • 用nvm管理Node.js/npm(最推荐)
    nvm是Node版本管理器,能让你在用户级别安装Node和npm,完全避开系统目录的权限问题:

    1. 打开终端,执行安装脚本:
      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
      
    2. 重启终端(或者执行source ~/.zshrc/source ~/.bash_profile,取决于你用的shell),然后安装LTS版本的Node.js(npm会自动附带安装):
      nvm install --lts
      
    3. 验证安装:node -vnpm -v能输出版本号就说明成功了。
  • 手动下载Node.js安装包
    去Node.js官方网站下载适配Mac的安装包(dmg格式),双击安装后,npm会自动配置好,而且默认安装在用户权限能访问的目录,不会触发系统权限问题。

二、npm install时出现checkPermissions错误的解决方法

这个错误几乎都是因为npm试图写入你没有权限的系统目录,或者项目文件所有权异常,试试这些方案:

方案1:修复npm全局目录的权限

  1. 先查看npm的全局安装前缀:
    npm config get prefix
    
  2. 把这个目录的所有权改成当前用户,避免后续需要sudo:
    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
    
    执行完这个命令后,再跑npm install(不管全局还是本地)应该就能正常执行了。

方案2:修改npm全局安装路径到用户目录

如果不想碰系统目录的权限,可以把npm的全局包安装到用户自己的目录下:

  1. 创建一个全局npm目录:
    mkdir ~/.npm-global
    
  2. 配置npm使用这个目录:
    npm config set prefix '~/.npm-global'
    
  3. 把这个目录添加到系统PATH里:
    • 如果你用zsh,编辑~/.zshrc文件,添加一行:
      export PATH=~/.npm-global/bin:$PATH
      
    • 如果你用bash,编辑~/.bash_profile或者~/.bashrc,添加同样的内容。
  4. 让配置生效:
    source ~/.zshrc # 对应你的shell配置文件
    

方案3:修复项目目录的权限

如果是项目内执行npm install报错,可能是项目目录的所有权属于root或者其他用户:

sudo chown -R $(whoami) ./

执行这个命令(在项目根目录下),把当前目录的所有文件所有权改成自己,然后再执行npm install即可。

方案4:清理npm缓存

有时候缓存损坏也会导致奇怪的权限错误,试试清理缓存后重新安装:

npm cache clean --force
npm install

重要提醒

永远不要用sudo npm install——这会把项目文件的所有权改成root,后续你再操作这些文件会持续遇到权限问题,除非你每次都用sudo,这显然不是个好办法。

内容的提问来源于stack exchange,提问作者c1992

火山引擎 最新活动