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

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,希望知晓报错原因及可行解决办法。


报错原因

  1. 版本依赖不兼容:@nestjs/apollo v10虽适配Apollo Server v4,但NestJS v9与@nestjs/graphql v10、Apollo Server v4的组合存在隐性依赖冲突。ApolloFederationDriver内部仍会间接调用apollo-server-core的API,而Apollo Server v4已移除该包(相关功能迁移至@apollo/server和@apollo/federation),导致依赖缺失。
  2. 依赖树异常:即使未直接安装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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 06:01:44