Я обнаружил две причины, по которым у Jest возникла проблема с модулем react-google-button
.
Похоже, что это проблемы конфигурации и способ создания модуля. Одной из проблем является то, что вы используете create-react-app
и что-то вроде того, что вам приходится иметь дело с отсутствием возможности настраивать некоторые вещи без извлечения, как например, ищет расширение файлов. Я думаю, что другая проблема связана с тем, что jest не очень хорошо реагирует на импорт модуля.
Проблемы -
- При взгляде на * Модуль 1050 * индексного файла имеет расширение
.d.ts
. Файл выглядит так, node_modules/react-google-button/index.d.ts
. Это приводит к тому, что Jest выбрасывает
Не удается найти модуль 'response-google-button error'
Причина, по которой он работает при запуске приложения, заключается в том, что TypeScript не имеет проблем с поиском файлов этого типа и будет по умолчанию при запуске приложения.
Если вы измените имя на index.ts
Jest без проблем увидит загруженный модуль. Я могу видеть в Google, что у других была эта проблема много раз, когда они не должны из-за данного TypeScript не иметь проблемы с просмотром файла. У меня есть только гипотеза, которая заключается в некоторой проблеме конфигурации между jest и create-реагировать-app.
Как только Jest видит модуль, возникает новая проблема. Эта библиотека использует оператор импорта "newi sh"
import * as React from 'react';
. Jest выдает ошибку:
Jest обнаружил неожиданный токен
Чтобы проверить мою теорию по этому второму вопросу, я удалил библиотеку реагировать-google-button и обновил оператор импорта в material-ui, чтобы использовать его,
import * as React from 'react';
Когда я внес изменение, новая ошибка была точно такой же неожиданной ошибкой токена, но теперь при импорте материала вместо реакции-google-button Импортировать.
Я еще раз предполагаю, что проблема в том, что Jest не настроен для этого.
Чтобы ответить на ваш вопрос Я думаю, будет справедливо сказать и то и другое. Проблема вызвана конфигурацией Jest и тем, как модуль
- называет файл index.d.ts.
- Импорт React.