Mac端React Native执行npm run start报Watchman无权限错误如何解决
问题根因
Mac端React Native项目执行npm run start启动时触发Watchman爬取失败,核心报错为Operation not permitted,本质是Mac系统隐私权限拦截,导致Watchman进程无权限访问项目所在目录,当前使用Watchman版本为2022.06.13.00。
分步解决方法
1. 修复系统权限配置
- 打开Mac「系统设置」→「隐私与安全性」→「完全磁盘访问权限」
- 在权限应用列表中,给你当前使用的终端工具(系统自带Terminal、iTerm2、VS Code等)勾选开启权限
- 给Watchman程序开启同等权限:如果列表中找不到Watchman,点击列表下方的+号,根据芯片类型选择对应路径的程序添加:
- Intel芯片路径:
/usr/local/Cellar/watchman/你的Watchman版本号/bin/watchman - Apple Silicon(M系列)芯片路径:
/opt/homebrew/Cellar/watchman/你的Watchman版本号/bin/watchman
- Intel芯片路径:
- 权限配置完成后,执行命令关闭Watchman后台进程:
watchman shutdown-server
2. 补全项目侧配置
- 进入项目根目录,新建
.watchmanconfig文件,文件内写入空配置即可:
{}
- 如果项目尚未初始化版本仓库,在项目根目录执行
git init初始化Git仓库,可大幅降低Watchman目录爬取的异常概率
3. 清空历史缓存
- 执行命令清空Watchman所有监听记录:
watchman watch-del-all - 删除项目目录下的
node_modules文件夹、package-lock.json文件,重新执行npm install安装全量依赖
4. 兜底方案
如果以上操作完成后仍报权限错误,将项目文件夹从Documents、Desktop、Downloads这类系统默认加了额外隐私保护的目录,移动到用户根目录下自建的非受保护目录(比如~/Code),再重新执行启动命令即可。
内容的提问来源于stack exchange,提问作者Struan Mclean
相关产品推荐
相关产品推荐

