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

Apollo Federation运行报错GraphQLNonNull cannot be invoked without 'new'求助

报错根因

你遇到的报错是依赖版本不兼容导致的:@apollo/gateway@0.44.0官方适配的是graphql 15.x版本,而你安装的graphql@16.x对核心类型做了破坏性变更:所有GraphQL内置类型(包括报错提到的GraphQLNonNull)全部改为必须用new调用的ES Class,但是0.44.0版本的gateway内部调用这些类型时仍然使用旧的函数调用语法,因此触发该错误。

解决方案

两个可选方案按需选择即可:

  • 方案1:降级graphql到15.x版本(兼容性最高,无需修改业务代码)
    执行安装命令:npm install graphql@15.x
    该版本和你当前使用的@apollo/gateway@0.44.0、apollo-server@3.5.0都完全兼容。
  • 方案2:升级联邦网关到支持graphql 16的版本
    如果你需要使用graphql 16的新特性,将@apollo/gateway升级到0.50.0及以上版本,同时同步升级apollo-server到对应兼容版本即可,升级前注意检查版本变更日志确认配置项是否有调整。
验证步骤

修改版本前可以先执行以下操作避免缓存影响:

  1. 删除项目根目录下的node_modules文件夹、package-lock.json(或yarn.lock)文件
  2. 按照选择的方案修改package.json中的依赖版本
  3. 重新执行依赖安装命令,再启动服务验证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:06:03