8

在我的反应应用程序中,我正在导入一个模块,如下所示:

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
}

我认为这种情况正在发生,因为开玩笑的依赖规则"/src\/(.*)$/"正在将所有路径重写src<rootDir>/src,即使它们来自 npm 模块。

我试图通过将以下配置添加到我的来解决此问题package.json

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

但是,这并没有改变错误。我能够删除错误的唯一方法是删除我的import语句 - 但是,这在我的代码中是必需的。

注意:代码在我的 react 应用程序运行时有效,只有在我运行 jest 时才会中断。

4

2 回答 2

1

我记得在 Jest 的 React 项目中使用 KY 库时遇到了类似的问题。您可能还必须使用transformIgnorePatters来克服这个问题。

他们在 KY 存储库中讨论了一个问题线程,您可能也会发现它有帮助,尽管一些解决方案非常特定于该项目:https ://github.com/sindresorhus/ky/issues/170

于 2019-10-13T18:43:41.133 回答
1

这是一个错误并已修复:https ://github.com/facebook/create-react-app/issues/7818

于 2019-10-20T17:06:38.097 回答