Федерация Apollo с Nest JS, невозможно использовать GraphQLSchema "[объект GraphQLSchema]" - PullRequest
0 голосов
/ 03 августа 2020
• 1000

Произошла ошибка прослушивателем onSchemaChange. Схема будет по-прежнему обновляться: Невозможно использовать GraphQLSchema «[object GraphQLSchema]» из другого модуля или области.

Также упоминаются повторяющиеся модули graphql.

Я искал ошибку и некоторые решения связал зависимость graphql с обоими проектами, но я попытался связать оба проекта, но это не сработало. Я также проверяю package.json обоих проектов и зависимости обновлений.

Пакет шлюза. json

  "dependencies": {
    "@apollo/federation": "^0.19.0",
    "@nestjs/common": "^7.0.0",
    "@nestjs/config": "^0.5.0",
    "@nestjs/core": "^7.0.0",
    "@nestjs/graphql": "^7.5.5",
    "@nestjs/platform-express": "^7.0.0",
    "apollo-server-express": "^2.16.1",
    "aws-sdk": "^2.720.0",
    "graphql": "^15.3.0",
    "graphql-tools": "^6.0.15",
    "reflect-metadata": "^0.1.13",
    "rimraf": "^3.0.2",
    "rxjs": "^6.5.4",
    "start-server-webpack-plugin": "^2.2.5",
    "webpack-node-externals": "^2.5.0"
  },

Пакет модуля федерации. json

  "dependencies": {
    "@apollo/gateway": "^0.19.0",
    "@nestjs/common": "^7.0.0",
    "@nestjs/core": "^7.0.0",
    "@nestjs/graphql": "^7.5.5",
    "@nestjs/platform-express": "^7.0.0",
    "graphql": "^15.3.0",
    "graphql-tools": "^6.0.15",
    "reflect-metadata": "^0.1.13",
    "rimraf": "^3.0.2",
    "rxjs": "^6.5.4"
  },

Объявление модуля шлюза -

  imports: [
    GraphQLGatewayModule.forRoot({
      server: {
        // ... Apollo server options
        cors: true,
      },
      gateway: {
        serviceList: [
          { name: 'resources', url: 'http://localhost:3000/graphql' }
        ]
      },
    }),
  ],

, а модуль федерации

  imports: [
    ConfigModule.forRoot({
      isGlobal: true
    }),
    GraphQLFederationModule.forRoot({
      typePaths: [ './**/*graphql' ],
      definitions: {
        path: join(process.cwd(), 'src/types/schema.ts'), 
      },
      resolvers: {
        Upload: GraphQLUpload, 
        AccessControlList: accessControlListResolver
      }
    }),
    ResourcesModule, 
  ],
...