macOS下安装create-react-app脚手架报错WARN checkPermissions Missing write access

学习react框架,macOS下安装脚手架create-react-app时出错

pre:执行安装命令,报错

在终端里输入命令:

npm install -g create-react-app

开始出现报错:
报错截图
看报错提示,应该是没有存取权限访问目录:/usr/local/lib/node_modules,马上进入到该目录的父目录下:

cd /usr/local/lib

查询当前用户对目录node_modules的操作权限:

ls -l

发现该目录的权限为: drwxr-xr-x,如下图:
当前用户对该目录的权限
d代表目录文件

文件类型有 -:普通文件,d:目录文件,l:链接文件,b:设备文件,c:字符设备文件,p:管道文件

r代表read读, w代表write写, x代表execute执行,三组权限字位置分别代表:文件所有者、文件所属组、其他用户。

三组从左到右排列,每组三位r w x,如果为 - 则表示这一位的权限不存在。

由此可知,目录node_modules的权限是:文件所有者是root,可以读写执行;文件所属组是wheel,它其他用户只能读和执行,不能写入数据。而安装脚手架是需要写入数据的,那么有两种解决办法:

  1. 使用root用户安装脚手架;
  2. 给其他用户赋权;
  3. 将该目录的所有内容授权给当前用户。

一、尝试第一种方法,使用root用户安装

切换为root用户:

sudo -i

按提示输入密码后切换为root用户:
切换为root用户

提示:切换为root用户时需要输入密码,密码即为macbook的锁屏密码,可以在设置中进行修改。

继续按原来安装脚手架的命令执行安装:

npm install -g create-react-app

提示安装成功,问题解决:
安装成功

二、尝试第二种方法,把写权限赋给所有用户后进行安装

先在root用户下将已安装的脚手架进行卸载:

npm uninstall -g create-react-app

卸载成功:
root用户下卸载脚手架
然后再把该目录 /usr/local/lib/node_modules的写权限赋给所有用户:

chmod a+w /usr/local/lib/node_modules

赋权成功:给所有用户赋写权限
退出root用户,按照上面方法进行脚手架的安装:

exit
npm install -g create-react-app

安装成功:
安装成功

尝试第三种方法,将目录内容授权给当前用户

先要切换到root用户,再进行授权,因为该目录 /usr/local/lib/node_modules 的所有者是root用户:

sudo -i
chown -R mac /usr/local/lib/node_modules

授权成功:
授权给当前用户
可以看到,该目录的所有者已经变为当前用户mac了。再继续进行安装,因为文件拥有者默认是有写入权限的,所以安装肯定是会成功的,就不再展示了。

值得一提的是,如果对系统安全性要求比较高,可以在尝试完所有方法,安装好之后,将目录*/usr/local/lib/node_modules*的写入权限限制为仅文件拥有者所有:

chmod go-w /usr/local/lib/node_modules

查看验证,修改成功:
修改写入权限
综上所述,安装脚手架出错的症结在于 当前用户 对目录的权限不足导致的,修改用户对目录的写入权限即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值