安装“npm install -g ionic cordova”时出错

当我安装 npm install -g ionic cordova It throws below error

npm WARN checkPermissions 缺少对 /usr/lib/node_modules 的写入权限 npm ERR!路径 /usr/lib/node_modules npm 错误!代码 EACCES npm 错误! errno -13 npm 错误!系统调用访问 npm ERR!错误:EACCES:权限被拒绝,访问 '/usr/lib/node_modules' npm ERR! { 错误:EACCES:权限被拒绝,访问 '/usr/lib/node_modules' npm ERR!堆栈:'错误:EACCES:权限被拒绝,访问'/usr/lib/node_modules'',npm ERR!错误号:-13,npm 错误!代码:'EACCES',npm 错误!系统调用:'访问',npm ERR!路径:'/usr/lib/node_modules' } npm 错误! npm 错误!该操作被您的操作系统拒绝。 npm 错误!很可能您没有以当前用户 npm ERR 的身份访问此文件的权限! npm 错误!如果您认为这可能是权限问题,请仔细检查 npm ERR!文件及其包含目录的权限,或尝试运行 npm ERR!再次以 root/Administrator 身份执行该命令(尽管不建议这样做)。

npm 错误!可以在以下位置找到此运行的完整日志:npm ERR!
/home/javauser/.npm/_logs/2018-05-19T04_42_24_737Z-debug.log

我也尝试过使用root用户。我正在使用 node v9.11.1 , npm 6.0.1

stack overflow error while installing "npm install -g ionic cordova"
原文答案

答案:

作者头像

在 Mac OS 或 linux 中使用 sudo 运行

sudo npm install -g ionic cordova

或在 Windows 中以管理员身份运行打开 cmd

npm install -g ionic cordova
作者头像

切勿将 npm 与 sudo(或以 root 身份)一起使用!您可以为您的系统创建潜在的后门。

作者头像

我刚刚在以下链接中回答了一个非常相似的问题: How to fix the problem with vue.js instalation

基本上发生的事情是 NPM 没有访问 /usr/local/lib 的权限。要授予它访问权限,您可以更改 ~/.npm 的所有权以属于您当前的用户。这可能是这样的:

sudo chown -R $(whoami) ~/.npm

这样您就不必将 npm 作为 sudo 运行,这是不推荐的。我相信这是由于 npm 包中已知的漏洞造成的。

这是一篇关于它的文章: Don't use "sudo" with npm "install"