在Mac中缺少对/ usr / local / lib / node_modules的写访问权限

时间:2019-02-21 08:22:20

标签: node.js angular angular-cli node-modules

我正在尝试安装angular cli,但显示我缺少对/ usr / local / lib / node_modules的写入权限 因此,如何在Mac中修复它,我可能会尝试一下,但无法获得准确答案

 npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!  { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules']
npm ERR!   stack:
npm ERR!    'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
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 (though this is not recommended).

10 个答案:

答案 0 :(得分:14)

我遇到了这个问题,我可以通过在每个全局安装中调用sudo来解决此问题。我对此不满意。

我遵循了n package installation的建议,能够在没有sudo的情况下安装npm软件包。

sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share

@jeduard的答案对我没有用。

答案 1 :(得分:8)

在终端窗口中运行以下命令:

sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/lib/node_modules
sudo chown -R $USER /usr/local/lib/node_modules

答案 2 :(得分:8)

解决npm install -g问题的最佳方法:

https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

这样,您将无需使用SUDOchange permissions

报价

  1. 备份计算机。

  2. 在命令行的主目录中,创建用于全局安装的目录:

     mkdir ~/.npm-global
    
    
  3. 配置npm以使用新的目录路径:

     npm config set prefix '~/.npm-global'
    
    
  4. 在首选的文本编辑器中,打开或创建~/.profile文件并添加以下行:

     export PATH=~/.npm-global/bin:$PATH
    
    
  5. 在命令行上,更新系统变量:

     source ~/.profile
    

答案 3 :(得分:2)

尝试安装React时遇到类似的问题-权限被拒绝的问题。

SUDO可以派上用场,它允许允许的用户以超级用户或其他用户的身份执行命令。想像Windows上的“以管理员身份运行”。如果键入以下命令,它应该允许您以适当的提升的访问权限访问所有需要的文件夹。

sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share

这在Dimitri's答案中也表示为: https://stackoverflow.com/a/60791736/3803726

答案 4 :(得分:2)

Attaching Screenshot 在npm安装之前添加sudo可以节省我的一天。一旦您提供了系统密码,安装应该顺利完成

sudo npm install -g @angular/cli

答案 5 :(得分:1)

只需添加sudosudo npm install -g @angular/cli

答案 6 :(得分:0)

同样的问题。我通过https://nodejs.org/en/download/而不是使用终端重新安装了最新版本的节点。这解决了问题。

答案 7 :(得分:0)

如果真的被阻止在全球范围内安装NPM模块(例如,在某些公司的便携式计算机上),则可以将它们全部安装在某个地方的单个本地文件夹中,然后将路径添加到node_modules /。 bin /到您的PATH环境。

答案 8 :(得分:0)

我遇到了同样的问题。
在终端输入这个cmd

sudo nautilus

之后,它会打开另一个具有 root 访问权限的文件管理器

enter image description here

在那之后

    sudo apt install nodejs 
    sudo apt install npm 
    sudo npm install -g npm@latest
    sudo npm install -g @angular/cli
    ng --version

答案 9 :(得分:-1)

简单,运行下面的命令
sudo chown -R $USER /usr/local/lib/node_modules