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_57_03_122Z-debug-0.log
时间: 2025-07-30 15:06:26 浏览: 13
在使用 npm 进行全局安装包时,遇到 `Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules'` 错误,通常是由于当前用户对目标目录没有写权限导致的。以下是几种常见的解决方法:
### 1. 修改 `/usr/local/lib/node_modules` 目录权限
可以通过修改目标目录的权限,将当前用户设置为该目录的所有者,从而避免权限问题。执行以下命令:
```bash
sudo chown -R $USER /usr/local/lib/node_modules
```
该命令会将 `/usr/local/lib/node_modules` 目录及其子目录的所有权更改为当前用户,确保 npm 有权限在此目录下创建文件和目录 [^2]。
### 2. 使用 `sudo` 执行 npm 安装命令
如果不想修改目录权限,也可以在安装命令前加上 `sudo`,以管理员权限执行安装操作:
```bash
sudo npm install -g <package-name>
```
例如,安装 `cnpm` 时可以使用:
```bash
sudo npm install -g cnpm --registry=https://registry.npm.taobao.org
```
这种方式适用于临时解决权限问题,但每次安装全局包时都需要使用 `sudo`,可能带来一定的安全风险 [^2]。
### 3. 配置 npm 的全局安装路径
为了避免对系统目录的权限依赖,可以配置 npm 使用自定义的全局安装路径。首先,创建一个全局安装目录,例如:
```bash
mkdir ~/.npm-global
```
然后,配置 npm 使用该目录作为全局安装路径:
```bash
npm config set prefix '~/.npm-global'
```
最后,将该目录添加到系统的 `PATH` 环境变量中,以便可以直接在命令行中使用全局安装的包。可以在 `~/.bashrc` 或 `~/.zshrc` 文件中添加以下内容:
```bash
export PATH=~/.npm-global/bin:$PATH
```
之后,运行以下命令使配置生效:
```bash
source ~/.bashrc
# 或者 source ~/.zshrc
```
这种方法避免了权限问题,并且不会影响系统目录,是一种更为安全和持久的解决方案。
### 4. 使用 Node 版本管理工具(如 `nvm`)
使用 `nvm`(Node Version Manager)可以避免全局安装目录的权限问题,因为 `nvm` 默认会将全局包安装在当前用户的目录下。安装 `nvm` 后,所有全局包都会安装在 `~/.nvm/versions/node/<version>/lib/node_modules` 中,无需额外权限。
安装 `nvm` 的步骤如下:
1. 安装 `nvm` 脚本:
```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
```
2. 重新加载 shell 配置:
```bash
source ~/.bashrc
# 或者 source ~/.zshrc
```
3. 安装所需的 Node.js 版本:
```bash
nvm install node
```
使用 `nvm` 管理 Node.js 和 npm 包安装路径,可以有效避免权限问题 [^2]。
---
阅读全文