TypeScript with Relay: не удается разрешить сгенерированный модуль - PullRequest
2 голосов
/ 19 марта 2020

В моем MessageItem.tsx компоненте у меня есть следующий код:

const data = useFragment(
    graphql`
      fragment MessageItem_message on Message {
        date
        body
      }
    `,
    message as any
  );

После запуска relay-compiler --src ./src --schema ../../schema.graphql --language typescript --artifactDirectory ./src/__generated__ генерируется модуль с именем MessageItem_message.graphql.ts.

Но когда я запускаю приложение выдает ошибку:

Не удалось скомпилировать.

. / src / components / MessageItem.tsx

Модуль не найден: не удается разрешить ' ./__generated__/MessageItem_message.graphql'

Причина в том, что только компоненты в sr c root могут ссылаться на правильный путь (./__generated__), тогда как компоненты в папке действительно нужны ссылаться на путь (../__generated__), но это не так.

Как я могу настроить путь?

1 Ответ

0 голосов
/ 28 апреля 2020

Удалите «--artifactDirectory ./src/__generated__» из параметров компилятора relay.

По умолчанию кажется, что компилятор Relay помещает каталог «__generated__» в каталог с любым исходным кодом, содержащим GraphQL.

В результате любые ссылки "./__generated__" в любом месте и на любом уровне иерархии исходного кода теперь работают так, как должны.

Благодаря @ThibaultBoursier за указатель.

PS Интересно, а опция --artifcactDirectory предназначена только для изменения имени каталога артефакта, а не его расположения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...