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,完全避开系统目录的权限问题:- 打开终端,执行安装脚本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash - 重启终端(或者执行
source ~/.zshrc/source ~/.bash_profile,取决于你用的shell),然后安装LTS版本的Node.js(npm会自动附带安装):nvm install --lts - 验证安装:
node -v和npm -v能输出版本号就说明成功了。
- 打开终端,执行安装脚本:
手动下载Node.js安装包
去Node.js官方网站下载适配Mac的安装包(dmg格式),双击安装后,npm会自动配置好,而且默认安装在用户权限能访问的目录,不会触发系统权限问题。
二、npm install时出现checkPermissions错误的解决方法
这个错误几乎都是因为npm试图写入你没有权限的系统目录,或者项目文件所有权异常,试试这些方案:
方案1:修复npm全局目录的权限
- 先查看npm的全局安装前缀:
npm config get prefix - 把这个目录的所有权改成当前用户,避免后续需要sudo:
执行完这个命令后,再跑sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}npm install(不管全局还是本地)应该就能正常执行了。
方案2:修改npm全局安装路径到用户目录
如果不想碰系统目录的权限,可以把npm的全局包安装到用户自己的目录下:
- 创建一个全局npm目录:
mkdir ~/.npm-global - 配置npm使用这个目录:
npm config set prefix '~/.npm-global' - 把这个目录添加到系统PATH里:
- 如果你用zsh,编辑
~/.zshrc文件,添加一行:export PATH=~/.npm-global/bin:$PATH - 如果你用bash,编辑
~/.bash_profile或者~/.bashrc,添加同样的内容。
- 如果你用zsh,编辑
- 让配置生效:
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




