开玩笑"Could not locate module"是否有任何依赖项在路径中"src"



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

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语句 - 但是,这在我的代码中是必需的。

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

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

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

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

相关内容

最新更新