You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

按照Relay分步指南操作到第5步执行yarn start出现AST Node错误

问题根因分析

核心根因

该问题本质是Relay工具链的版本不兼容,具体原因如下:

  • Relay的整套生态(包括relay-compiler、react-relay、babel-plugin-relay)对版本一致性要求非常严格,不同版本的Relay对GraphQL AST节点的结构定义、字段规则会有调整,只要relay-compiler的版本和其他Relay依赖的版本不匹配,编译器生成的AST结构就无法通过后续流程的校验,就会抛出Invalid AST Node的错误。
  • 你本地全局安装的relay-compiler版本刚好和项目内其他Relay依赖的版本匹配,所以调用全局版本编译时生成的AST结构符合校验规则,不会触发报错;而项目本地node_modules下安装的relay-compiler版本和其他依赖版本不匹配,就会触发错误。

修复方案

  • 先卸载项目内已有的所有Relay相关依赖:
yarn remove relay-compiler react-relay babel-plugin-relay graphql
  • 统一安装版本匹配的依赖:
yarn add relay-compiler react-relay babel-plugin-relay graphql
  • 删除项目中之前编译生成的所有__generated__文件夹,再重新执行编译和启动命令即可。

注意:不要混合使用全局和项目本地的relay-compiler,建议在package.json的scripts字段中定义"relay": "relay-compiler",每次执行yarn relay调用本地版本,避免版本不一致问题。


内容的提问来源于stack exchange,提问作者wasd0109

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:54:04