Jest "Не удалось найти модуль", если какая-либо зависимость имеет "src" в пути - PullRequest
6 голосов
/ 13 октября 2019

В моем приложении реакции я импортирую модуль следующим образом:

import { isValidAddress } from 'orbit-db';

Для некоторой зависимости isValidAddress требуется multicodec/src/base-table ( см. Эту строку ).

Однако jest выдает следующую ошибку:

Configuration error:

Could not locate module multicodec/src/base-table mapped as:
/Users/h/Documents/code/orbit-db-time-machine/src/base-table.

Please check your configuration for these entries:
{
  "moduleNameMapper": {
    "/src\/(.*)$/": "/Users/h/Documents/code/orbit-db-time-machine/src/$1"
  },
  "resolver": null
}

Я думаю, что это происходит потому, что правило зависимости jest "/src\/(.*)$/" переписывает все пути с src в них в <rootDir>/src, даже если они приходят из модуля npm.

Я попытался исправить это, добавив следующую конфигурацию в мой package.json:

"jest": {
  "moduleNameMapper": {
    "/multicodec\/(.*)$/": "<rootDir>/node_modules/multicodec/$1"
  }
}

Однако это не изменило ошибку. Единственный способ удалить ошибку - это удалить оператор import - однако это требуется в моем коде.

Примечание. Код работает при запуске из моего приложения реагирования, он только ломаетсякогда я бегу шутку.

Ответы [ 2 ]

1 голос
/ 13 октября 2019

Я помню, как сталкивался с подобной проблемой при использовании библиотеки KY в моем проекте React с Jest. Возможно, вам придется использовать transformIgnorePatters , чтобы преодолеть это.

Был поток вопросов, где они обсуждали это в репозитории KY, что вы также можете найти полезным, хотя некоторые из решений очень специфичны для этого проекта: https://github.com/sindresorhus/ky/issues/170

0 голосов
/ 20 октября 2019

Эта ошибка была исправлена: https://github.com/facebook/create-react-app/issues/7818

...