Мой API написан на TypeScript / Apollo, и я могу выполнять запросы / мутации на http: // localhost: 4000 / graphql. Мой интерфейс работает с Next.js и клиентом Apollo. Я использую GraphQL Codegenerator для создания необходимого мне клиентского кода.
Я использую:
"@graphql-codegen/cli": "1.20.1",
"@graphql-codegen/typescript": "1.20.2",
"@graphql-codegen/typescript-operations": "1.17.14",
"@graphql-codegen/typescript-react-apollo": "2.2.1",
а мой codegen.yml
файл
overwrite: true
schema: "http://localhost:4000/graphql"
documents: "src/graphql/**/*.graphql"
generates:
src/generated/graphql.tsx:
plugins:
- "typescript"
- "typescript-operations"
- "typescript-react-apollo"
Скрипт, который я запускаю, когда меняю преобразователи API, - "gen": "graphql-codegen --config codegen.yml"
Если я запускаю этот код, я получаю сообщение об ошибке:
✖ src/generated/graphql.tsx
Error:
Unable to find any GraphQL type definitions for the following pointers:
- src/graphql/**/*.graphql
но если установить мой codegen.yml
файл следующим образом, он работает (и я проверил запрос в одном из компонентов, я могу получить доступ к данным):
overwrite: true
schema: "http://localhost:4000/graphql"
documents:
- "src/graphql/fragments/RecipeSnippet.graphql"
- "src/graphql/fragments/RegularError.graphql"
- "src/graphql/fragments/RegularUser.graphql"
- "src/graphql/fragments/RegularUserResponse.graphql"
- "src/graphql/mutations/createRecipe.graphql"
- "src/graphql/mutations/deleteRecipe.graphql"
- "src/graphql/mutations/login.graphql"
- "src/graphql/mutations/logout.graphql"
- "src/graphql/mutations/register.graphql"
- "src/graphql/mutations/updateRecipe.graphql"
- "src/graphql/queries/me.graphql"
- "src/graphql/queries/recipe.graphql"
- "src/graphql/queries/recipes.graphql"
generates:
src/generated/graphql.tsx:
plugins:
- "typescript"
- "typescript-operations"
- "typescript-react-apollo"
Я не совсем уверен, что делаю неправильно, и что еще более странно, это то, что раньше это работало. Я помню, как недавно обновлял свои данные. Я видел и пробовал несколько других ответов, например этот или этот, но безрезультатно :(