运行yarn执行relay-compiler时出现ENOTDIR错误该如何解决?
解决步骤
- 优先排查watchman依赖问题:Relay Compiler v13及以上版本默认依赖watchman实现文件变更监听,若本地未安装watchman或watchman安装路径异常,就会触发spawn ENOTDIR错误。
对应处理:根据你的操作系统安装watchman,安装完成后执行watchman --version验证安装成功,再重新运行relay编译脚本即可。 - 若无需监听文件变化,可直接在编译命令中添加
--watchman false参数禁用watchman,修改后的脚本命令如下:
该方案也适用于CI环境等无需热监听的运行场景。relay-compiler --src ./src --schema ./schema.graphql --language typescript --watchman false - 检查路径配置有效性:确认项目根目录下
./src为真实存在的目录,./schema.graphql为合法的GraphQL Schema文件,避免路径指向错误。 - 若以上方案均无效,可清除本地缓存重试:手动删除项目下的node_modules文件夹、yarn.lock文件,重新执行
yarn install安装依赖后再运行编译脚本。 - Linux环境下还可执行
watchman watch-del-all清除watchman历史缓存,再重试编译命令。
内容的提问来源于stack exchange,提问作者Qian-Ye_Lin
相关产品推荐
相关产品推荐

