FAQ

watchman 导致的 RN 项目运行失败

问题:执行 npx react-native run-ios 运行 RN 项目,终端内提示 /usr/local/var/run/watchman/ 这个目录不存在。

分析:这个目录本应该是 watchman 安装时产生的,但使用 brew 重新安装 watchman 也未能修复这个问题。执行 watchman version ,也是提示上述目录不存在。

相关资料:根据 watchman 项目中这个 issue 的回答,可以自行创建相关目录,设置合适的目录权限即可。

下面介绍解决此问题的详细步骤

/usr/local/var 目录下创建 run 目录(如果没有此目录才需执行):

sudo mkdir run

执行 ll 查看 run 目录的文件权限:

total 0
drwxr-xr-x   4 huanglibo  admin   128B Jan 12  2018 homebrew
drwxr-xr-x   3 huanglibo  admin    96B Oct 27  2017 log
drwxr-xr-x   2 huanglibo  admin    64B Oct 27  2017 mongodb
drwxr-xr-x  59 huanglibo  admin   1.8K May  1  2020 mysql
drwx------  24 huanglibo  admin   768B Jan 12  2018 postgres
drwxr-xr-x   2 root       wheel    64B Aug 28 00:49 run

可以看到使用 sudo 命令创建的目录默认拥有者是 root ,默认组是 wheel

修改 run 目录的 owner :

sudo chown huanglibo run

修改 run 目录的 group :

chgrp admin run

执行 cd run 后,在 run 目录下创建 watchman 目录:

mkdir watchman

执行 ll 查看 watchman 目录的权限,是正常的,无需修改:

total 0
drwxr-xr-x  2 huanglibo  admin    64B Aug 28 00:50 watchman

再次运行 watchman version ,可正常输出版本信息了:

{
    "version": "2021.08.23.00"
}

最后,执行 npx react-native run-ios ,项目能正常运行了。

Last updated

Was this helpful?