如果任何依赖项在路径

时间:2019-10-12 23:52:49

标签: javascript reactjs jestjs orbitdb

在我的react应用中,我正在按如下方式导入模块:

import { isValidAddress } from 'orbit-db';

isValidAddress的某些依赖项需要multicodec/src/base-tablesee this line)。

但是,开玩笑给出了以下错误:

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模块。 / p>

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

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

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

注意:该代码在我的react应用程序中运行时有效,仅在我开玩笑时才会中断。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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