npm ERR! code EACCES npm ERR! syscall mkdir npm ERR! path /usr/local/lib/node_modules npm ERR! errno -13 npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules' npm ERR! [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules'] { npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'mkdir', npm ERR! path: '/usr/local/lib/node_modules' npm ERR! } npm ERR! npm ERR! The operation was rejected by your operating system. npm ERR! It is likely you do not have the permissions to access this file as the current user npm ERR! npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and its containing directories, or try running npm ERR! the command again as root/Administrator. npm ERR! A complete log of this run can be found in: npm ERR! /home/suzhou5/.npm/_logs/2025-07-28T08_46_30_986Z-debug-0.log
时间: 2025-07-30 09:06:27 浏览: 14
在使用 npm 安装包时,如果遇到 `Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/xxxxxx'` 错误,通常是因为当前用户没有权限在 `/usr/local/lib/node_modules` 目录下创建文件夹。以下是几种有效的解决方案:
### 修改目录权限
可以通过修改 `/usr/local/lib/node_modules` 目录的所有权,将该目录的权限赋予当前用户:
```bash
sudo chown -R $USER /usr/local/lib/node_modules
```
此命令将 `/usr/local/lib/node_modules` 目录及其子目录的所有权递归地更改为当前用户,从而允许用户在该目录下进行写操作 [^3]。
### 使用 `sudo` 提权执行安装命令
如果不想更改目录权限,可以使用 `sudo` 来提权执行 npm 安装命令。例如:
```bash
sudo npm install -g <package-name>
```
通过 `sudo` 命令,以管理员权限运行 npm 安装命令,可以绕过权限限制 [^4]。
### 配置 npm 的全局安装路径
为了避免将来再次出现权限问题,可以配置 npm 的全局安装路径到一个当前用户有写权限的目录。首先,创建一个新的目录用于存放全局安装的 npm 包,例如:
```bash
mkdir ~/.npm-global
```
然后,配置 npm 使用这个新目录作为全局安装路径:
```bash
npm config set prefix '~/.npm-global'
```
最后,确保将该目录添加到系统的 `PATH` 环境变量中,以便可以在终端中直接运行全局安装的包。可以在 shell 配置文件(如 `.bashrc` 或 `.zshrc`)中添加以下行:
```bash
export PATH=~/.npm-global/bin:$PATH
```
完成后,重新加载 shell 配置文件:
```bash
source ~/.bashrc # 或者 source ~/.zshrc
```
这样配置后,npm 的全局安装路径将不再依赖于 `/usr/local/lib/node_modules`,从而避免权限问题 [^3]。
### 总结
上述方法可以帮助解决 npm 安装时因权限不足导致的目录创建失败问题。选择合适的方法取决于具体需求和系统配置。
阅读全文