【Mac】npm error Error: EACCES: permission denied, mkdir‘/Users/...

问题描述:Mac电脑中的 vscode 下载依赖的时候提示没有权限:

在这里插入图片描述

故障分析

  • 首先账号是有权限的,电脑就建了一个账号是管理员;
  • 在桌面用shell直接执行命令npm init 命令可以执行成功,那么问题就出在vscodes上面了,临时解决方案 sudo npm xxx
  • 但是每次这么做太麻烦了,给vscode安装包加个权限吧。

解决方案

把vscode安装包的路径设置成系统环境变量,类似给java设置环境变量。先拿到安装包的路径,再设置成系统环境变量具体操作如下。

具体解决步骤

1. 拿到应用路径

苹果的应用程序都在这个目录( /Applications/…), 然后在命令行执行 sudo +路径回车
sudo "/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code"

2. 添加系统环境变量

2.1 使用 nano ~/.zshrc ,添加系统环境变量,打开后添加到最后一行:

export PATH="$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"

在这里插入图片描述

2.2 保存退出

Ctrl + X → 按 Y → Enter

3 让环境变量生效

source ~/.zshrc
code --version

在使用 `npm` 进行全局安装时,如果遇到类似 `Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/n'` 的错误,通常是因为当前用户对目标目录没有写权限。以下是解决此类权限问题的几种方法: 1. **修改 `/usr/local/lib/node_modules` 目录的所有权** 通过 `chown` 命令将该目录及其子目录的所有权赋予当前用户: ```bash sudo chown -R $USER /usr/local/lib/node_modules ``` 此操作完成后,再次尝试执行 `npm install -g n` 应该可以正常进行。 2. **使用 `sudo` 提权执行安装命令** 如果不希望更改系统目录的所有权,也可以直接使用 `sudo` 来提升权限进行安装: ```bash sudo npm install -g n ``` 这种方式适用于临时需要安装某些全局包的情况,但需要注意安全性问题。 3. **配置 npm 的全局安装路径** 避免与系统级目录发生权限冲突的一种更安全的方法是自定义 npm 全局安装路径。例如,可以在用户主目录下创建一个专门用于存放全局 npm 包的文件夹: ```bash mkdir ~/.npm-global npm config set prefix '~/.npm-global' ``` 然后将该路径添加到系统的 `PATH` 环境变量中(可在 `~/.bashrc` 或 `~/.zshrc` 中添加): ```bash export PATH=~/.npm-global/bin:$PATH ``` 最后重新加载配置文件: ```bash source ~/.bashrc # 或 source ~/.zshrc ``` 完成上述步骤后,即可无需 `sudo` 即可进行全局安装。 4. **使用 Node 版本管理工具(如 `nvm`)** 推荐使用 `nvm`(Node Version Manager)来管理 Node.js 版本,它会自动处理所有与权限相关的问题,并允许在同一台机器上轻松切换多个 Node.js 版本: ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash ``` 安装完成后,关闭终端并重新打开,然后运行以下命令安装 Node.js: ```bash nvm install node # 安装最新版本的 Node.js ``` 以上方法均可有效解决因权限不足导致的 `npm` 全局安装失败问题。推荐优先考虑使用 `nvm`,因为它不仅解决了权限问题,还提供了更灵活的版本管理功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Billy Qin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值