如果任何依赖项在路径中包含“ src”,则表示“无法找到模块”

Han*_*ach 6 javascript reactjs jestjs orbitdb

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

import { isValidAddress } from 'orbit-db';
Run Code Online (Sandbox Code Playgroud)

一些依赖isValidAddress要求multicodec/src/base-table见本线)。

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

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
}
Run Code Online (Sandbox Code Playgroud)

我认为这之所以发生是因为开玩笑的依赖性规则"/src\/(.*)$/"是将其中包含的所有路径重写src<rootDir>/src,即使它们来自npm模块。

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

"jest": {
  "moduleNameMapper": {
    "/multicodec\/(.*)$/": "<rootDir>/node_modules/multicodec/$1"
  }
}
Run Code Online (Sandbox Code Playgroud)

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

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