npm WARN checkPermissions缺少对/ usr / local / lib / node_modules的写入权限

12 javascript macos npm reactjs monaca

我正在尝试使用此命令安装monaca。

npm install -g monaca
Run Code Online (Sandbox Code Playgroud)

但是在收到这些错误之后:

npm WARN checkPermissions缺少对/ usr / local / lib / node_modules的写权限npm ERR!路径/ usr / local / lib / node_modules npm错误!代码EACCES npm ERR!errno -13 npm错误!syscall访问npm ERR!错误:EACCES:权限被拒绝,访问'/ usr / local / lib / node_modules'npm ERR!{错误:EACCES:权限被拒绝,访问'/ usr / local / lib / node_modules'npm ERR!堆栈:'错误:EACCES:权限被拒绝,访问\'/ usr / local / lib / node_modules \'',npm ERR!errno:-13,npm错误!代码:“ EACCES”,npm错误!syscall:“访问”,npm错误!路径:'/ usr / local / lib / node_modules'}

任何想法如何解决这个问题?谢谢

Shi*_*kar 27

在安装npm之后将以下行添加到〜/ .bashrc中:

npm set prefix ~/.npm
PATH="$HOME/.npm/bin:$PATH"
PATH="./node_modules/.bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

更改后执行以下行:

source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

并且如@contemplator所述避免使用 sudo

  • 更类似于 zshrc 的方法是 `npm set prefix ~/.npm; 路径+=$HOME/.npm/bin; path+=./node_modules/.bin` (使用 path+= 而不是像 bash 那样将现有路径附加到每一行) (6认同)
  • **注意:不要使用 `sudo`** 如果使用 [Zsh](https://ohmyz.sh/),请在安装 npm 后将上面的行添加到 `~/.zshrc` 中。更改后执行以下行:`source ~/.zshrc` (3认同)

小智 5

注意:强烈建议避免sudo与npm一起使用!

不建议使用sudo。稍后可能会给您权限问题。在上述方法有效的同时,请按照以下说明永久解决问题。


小智 5

此命令将以递归方式 (-R) 更改指定目录中当前用户的所有者 (chown)

sudo chown -R $USER /usr/local/lib/node_modules
Run Code Online (Sandbox Code Playgroud)


Sni*_*ers -19

解决此问题的一个不明智的方法是使用 sudo:

sudo npm install -g monaca
Run Code Online (Sandbox Code Playgroud)

然而,最好找到一种不使用 sudo 的方法来解决这个问题。

npm install -g less 不起作用

  • 不要将 `sudo` 与 `npm` 一起使用,[试试这个](/sf/answers/2863403371/) (16认同)
  • 你实际上只是说这是不可取的 - 所以不要成为问题的一部分并给出建议。 (4认同)