在 React-Native 项目中开玩笑。如何将重复模块列入黑名单或删除?

Posted

技术标签:

【中文标题】在 React-Native 项目中开玩笑。如何将重复模块列入黑名单或删除?【英文标题】:Jest in a React-Native project. How to Blacklist or delete duplicate modules? 【发布时间】:2018-03-21 16:44:30 【问题描述】:

我正在尝试使用lerna 建立一个React-Native 项目。当我尝试运行 jest 时,我遇到了以下错误。

   The name `setupDevtools` was looked up in the Haste module map. It cannot be resolved, because there exists several different files, or packages, that provide a module for that particular name and platform. The platform is generic (no extension). You must delete or blacklist files until there remains only one of these:

      * `/Users/kevin.amiranoff/project/node_modules/react-native/Libraries/Core/Devtools/setupDevtools.js` (module)
      * `/Users/kevin.amiranoff/project/packages/App/node_modules/react-native/Libraries/Core/Devtools/setupDevtools.js` (module)
      * `/Users/kevin.amiranoff/project/packages/App-exceptions/node_modules/react-native/Libraries/Core/Devtools/setupDevtools.js` (module)
      * `/Users/kevin.amiranoff/project/packages/App-signin/node_modules/react-native/Libraries/Core/Devtools/setupDevtools.js` (module)
      * `/Users/kevin.amiranoff/project/packages/App-ui/node_modules/react-native/Libraries/Core/Devtools/setupDevtools.js` (module)
      * `/Users/kevin.amiranoff/project/packages/App-utils/node_modules/react-native/Libraries/Core/Devtools/setupDevtools.js` (module)

这是我在根目录package.json 中的jest 配置

"jest": 
    "preset": "react-native",
    "globals": 
      "__DEV__": true
    ,
    "testRegex": "packages/(.*)/src/(.*)/__tests__/(.*).js?$",
    "transformIgnorePatterns": [
      "packages/(.*)/node_modules/?!(react|react-native)"
         ],
    "testEnvironment": "node"
  

谁能向我解释我必须忽略什么以及如何忽略?

【问题讨论】:

【参考方案1】:

您应该使用modulePathIgnorePatterns 忽略某些目录。 确保只有您真正想要使用的那个不在此忽略列表中。

文档链接: https://facebook.github.io/jest/docs/en/configuration.html#modulepathignorepatterns-array-string

【讨论】:

谢谢它的工作。顺便说一下,该选项称为modulePathIgnorePatterns。你少了一个's'。 @KevinAmiranoff 在不同的包上面临同样的问题。你能发布你最后的笑话配置吗?以及如何找到必须使用 modulePathIgnorePatterns 排除的不同路径?谢谢 为了将来参考,您可以将yarn-cachenpm-cache添加到modulePathIgnorePatterns。欲了解更多信息,请查看github.com/facebook/jest/issues/4682#issuecomment-336304046 我遇到了同样的问题,我只是将文件夹路径 c:/work/somefolder 更改为 c:/work2/somefolder

以上是关于在 React-Native 项目中开玩笑。如何将重复模块列入黑名单或删除?的主要内容,如果未能解决你的问题,请参考以下文章

用于 react-native 的 Code Push 打破玩笑测试

如何将 OpenCV 库导入 React-Native 项目

如何将 React-Native 项目集成到 Android-Studio?

如何清理我的 react-native 项目以备份它?

如何在 typescript react-native 项目中导入降价文件?

如何在 react-native 中获取应用程序根目录