全局安装 npm 包报错没有权限
问题
在全局安装 npm 包的时候,比如 npm i npm-check -g
,可能会报错,提示没有权限
Error: EACCES: permission denied, access '/usr/local/lib/node_modules'复制代码
解决方式
1.查看 node_modules 目录的所有者
ls -la /usr/local/lib/node_modules --------------------- total 0 drwxr-xr-x 3 root wheel 96 6 18 12:42 . drwxrwxr-x 6 anna admin 192 12 12 15:45 .. drwxr-xr-x 23 root wheel 736 12 26 2018 npm复制代码
看到 drwxr-xr-x 3 root wheel 96 6 18 12:42 .
,这一行,发现 node_module 的所有者是 root 下的,于是需要把所有者转到自己下面
2.看看自己是谁
whoami ------------------ anna复制代码
通过 whoami
命令,看到我们现在登陆的用户是 anna,不是 root,于是没有权限也是符合预期的,需要把 node_module 的所有者换成 anna(这里只是一个例子,以自己尝试的名字为准)
3.换下目录所有者(注意换下用户名 anna)
sudo chown -R anna: /usr/local/lib/node_modules
chown
命令是将指定文件的拥有者改为指定的用户或组
参数 -R
处理指定目录以及其子目录下的所有文件
具体可以看下 chown
命令的介绍:www.cnblogs.com/peida/archi…
4.结束
这样 /usr/local/lib/node_modules
目录的所有者就更换完毕了,可以正常在全局安装 npm 包。
参考
这个方法参考了 stackoverflow 上的这个问题,感兴趣的同学可以看看~
stackoverflow.com/questions/4…
以上是本文的全部内容,欢迎点赞和评论~
作者:恒十七
链接:https://juejin.cn/post/7020279830042132487