NestJS v9+GraphQL+Apollo Server v4报错:找不到apollo-server-core模块
问题:NestJS GraphQL联邦架构中出现"Cannot find module 'apollo-server-core'"报错
我尝试采用Schema First方式构建包含AUTH、LEDGER两个微服务及GATEWAY的NestJS GraphQL联邦架构单体仓库,AUTH微服务的AppModule.ts代码如下:
import { AuthModule } from './../auth/auth.module'; import { Module } from '@nestjs/common'; import { GraphQLModule } from '@nestjs/graphql'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { join } from 'path'; import { ApolloFederationDriver, ApolloFederationDriverConfig } from '@nestjs/apollo'; @Module({ imports: [ GraphQLModule.forRoot<ApolloFederationDriverConfig>({ driver: ApolloFederationDriver, autoSchemaFile: join(process.cwd(), 'src/schema.gql'), context: ({ req }) => ({ req }), useGlobalPrefix: true, }), AuthModule ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
但持续收到报错:Error: Cannot find module 'apollo-server-core'。我并未直接使用apollo-server-core,而是使用Apollo Server v4以及@nestjs/graphql、@nestjs/apollo v10,且了解NestJS v9可能未适配Apollo Server v4,希望知晓报错原因及可行解决办法。
报错原因
- 版本依赖不兼容:
@nestjs/apollov10虽适配Apollo Server v4,但NestJS v9与@nestjs/graphqlv10、Apollo Server v4的组合存在隐性依赖冲突。ApolloFederationDriver内部仍会间接调用apollo-server-core的API,而Apollo Server v4已移除该包(相关功能迁移至@apollo/server和@apollo/federation),导致依赖缺失。 - 依赖树异常:即使未直接安装
apollo-server-core,项目中其他旧版本联邦相关依赖可能间接引入不兼容版本,或安装过程中该包未被正确拉取。
可行解决办法
方案一:统一版本适配(推荐)
将NestJS升级到v10,与@nestjs/graphql、@nestjs/apollo v10完美适配Apollo Server v4,彻底解决兼容问题:
npm install @nestjs/common@10 @nestjs/core@10 @nestjs/graphql@10 @nestjs/apollo@10
同时安装Apollo Server v4核心依赖:
npm install @apollo/server @apollo/federation graphql
方案二:降级适配NestJS v9
若暂时无法升级NestJS,将@nestjs/apollo、@nestjs/graphql降级到适配NestJS v9的版本,同时使用Apollo Server v3(此时apollo-server-core为核心依赖,会自动安装):
npm install @nestjs/apollo@9 @nestjs/graphql@9 apollo-server-core@3 @apollo/federation@0.36.x
修改代码中的驱动配置,确保与Apollo Server v3兼容。
方案三:手动补全依赖(临时方案)
临时运行项目可手动安装缺失的包,但仅为权宜之计,可能引发其他兼容问题:
npm install apollo-server-core
内容的提问来源于stack exchange,提问作者MichaelE
相关产品推荐
相关产品推荐

