全局安装 npm 包报错没有权限

2021-10-20 10:19:35 浏览数 (1)

问题

在全局安装 npm 包的时候,比如 npm i npm-check -g,可能会报错,提示没有权限

代码语言:javascript复制
Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
复制代码

解决方式

1.查看 node_modules 目录的所有者

代码语言:javascript复制
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.看看自己是谁

代码语言:javascript复制
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…

以上是本文的全部内容,欢迎点赞和评论~

0 人点赞