«Может только создать NonNull для Nullable GraphQLType, но получил: ID» - PullRequest
1 голос
/ 04 февраля 2020

При запуске apollo client:codegen я получаю следующую ошибку:

  ✔ Loading Apollo Project
  ✖ Generating query files with 'typescript' target
    → Can only create NonNull of a Nullable GraphQLType but got: ID.
Error: Can only create NonNull of a Nullable GraphQLType but got: ID.
    at invariant (~/Code/humu/node_modules/graphql/jsutils/invariant.js:18:11)
    at new GraphQLNonNull (~/Code/humu/node_modules/graphql/type/definition.js:779:84)
    at Object.typeFromASTImpl (~/Code/humu/node_modules/graphql/utilities/typeFromAST.js:39:25)
    at variables.map.node (~/Code/humu/node_modules/apollo-codegen-core/lib/compiler/index.js:73:36)
    at Array.map (<anonymous>)
    at Compiler.compileOperation (~/Code/humu/node_modules/apollo-codegen-core/lib/compiler/index.js:71:75)
    at Object.compileToIR (~/Code/humu/node_modules/apollo-codegen-core/lib/compiler/index.js:15:44)
    at Object.generate [as default] (~/Code/humu/node_modules/apollo/lib/generate.js:78:36)
    at write (~/Code/humu/node_modules/apollo/lib/commands/client/codegen.js:67:54)
    at Task.task (~/Code/humu/node_modules/apollo/lib/commands/client/codegen.js:86:46)

Почему это происходит? Ошибка звучит так, как будто в схеме есть два ненулевых оператора (например: ID!!) или аналогичные, но в моем файле схемы этого нет.

1 Ответ

1 голос
/ 04 февраля 2020

Может быть, у вас есть две разные версии graphql-js, загруженные в память. Внутри пакета выполняется проверка instanceof, чтобы определить, является ли что-то допустимым типом GraphQL, и если объект передается из одной копии в другую, проверка неверно возвращает false.

Наша команда столкнулась с эту проблему и удалось исправить с разрешением пряжи :

// in package.json
"resolutions": {
  "graphql": "14.3.1"
}

(Также: оказывается, что пряжа 1.x имеет ошибку , где разрешения не соблюдаются при запуске yarn add. Запуск только yarn исправляет это.)

...