graphql-codegen не работает с файлом конфигурации

В моем package.json файл У меня есть запись скрипта, которая запускается graphql-codegen но он жалуется, что --config аргумент недействителен:

$> yarn gen
yarn run v1.21.1
$ graphql-codegen --config codegen.yml
Error: Unknown argument: config
...
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Поскольку я считаю, что имя файла по умолчанию codegen.yml в любом случае, я пытаюсь запустить его без этого аргумента, и ничего не генерируется:

$> yarn graphql-codegen
yarn run v1.21.1
$ /home/aaron/projects/my_app/node_modules/.bin/graphql-codegen
Done in 0.17s.

Есть идеи?

8 ответов

Решение

Хорошо, я не совсем уверен, что я сделал, чтобы это исправить. Я считаю, что я также установилgraphql-codegen глобально и попытался удалить его с помощью sudo npm uninstallgraphql-codegen который удалил кучу пакетов, но исполняемый файл все еще существует:

$>which graphql-codegen
/usr/bin/graphql-codegen

Однако я решил бежать yarn graphql-codegen init по прихоти, чтобы увидеть, если initбыл действителен, и потому что я не мог вспомнить, пробовал ли я это раньше. Я получил стандартные вопросы, как обычно, поэтому яctrl+CЭд и просто побежал yarn graphql-codegenи это сработало! Затем я побежалyarn graphql-codegen --watch чтобы проверить, нужны ли варианты, и это тоже работает.

Если у кого-то возникнет эта проблема, я надеюсь, что эти советы вам помогут.

Для меня это решило проблему

yarn add -D @graphql-codegen/cli

руководство по установке doc

Попытайся: rm -rf ./node_modules && npm install

Также может быть, что у вас установлен пакет apollo graphql-codegen , который также предоставляет двоичный файл с именем graphql-codegen, который принимает аргументы schema а также output, но нет config.

Для меня решением было установить @graphql-codegen/cli.

Graphql .config.yml

schema: http://localhost:8081/graphql
extensions:
  codegen:
    generates:
      ./schema.graphql:
        - schema-ast

package.json

{
   "codegen": "graphql codegen --config graphql.config.yml"
}

в моем случае я удалил пробел перед именем файла, поэтому:codegen.tsвместо codegen.ts

Я исправил проблему, используяgraphql-code-generatorвместо:

      "scripts": {
    "graphql:generate": "graphql-code-generator"
}
Другие вопросы по тегам