在全局安装 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…
以上是本文的全部内容,欢迎点赞和评论~
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。