首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jest- Haste -map: Haste模块命名冲突

jest- Haste -map: Haste模块命名冲突
EN

Stack Overflow用户
提问于 2019-11-26 01:34:46
回答 1查看 837关注 0票数 16

在我们的项目中,我们在两个工作区(根文件夹和库文件夹,用于测试目的)中安装了react-native。当尝试测试应用程序(根文件夹)时,这会抛出典型的错误"jest- Haste -map: Haste模块命名冲突“。

项目结构:

代码语言:javascript
复制
.(rootProject)
+-- my-package
|   +-- package.json (workspace(*))
+-- package.json(workspace(*))

* has react-native as dependency

我可以为移动端编译,给出以下配置:

代码语言:javascript
复制
// metro.config.js
blacklistRE: blacklist([
   new RegExp(
     `^${path.resolve(__dirname, 'my-package/node_modules')}/.*$`,
   ),
]),

为了开玩笑,我尝试了以下几种方法,但都没有成功:

代码语言:javascript
复制
// jest.config.js
modulePathIgnorePatterns: [
  '<rootDir>/my-package/node_modules/react-native',
]

jest.config有没有类似的配置?

编辑:

根项目(rootProject)的jest配置(不起作用的那个):

代码语言:javascript
复制
module.exports = {
  roots: ['<rootDir>', '<rootDir>/my-package/__mocks__'],
  preset: 'react-native',
  snapshotSerializers: ['enzyme-to-json/serializer'],
  moduleNameMapper: {
    '\\.(jpg|jpeg|png|gif|svg)$':
      '<rootDir>my-package/__mocks__/fileMock.js',
  },
  setupFiles: ['./jest.setup.js'],
  testMatch: ['<rootDir>/src/**/*.spec.js'],
  transformIgnorePatterns: [
    'node_modules/(?!@asseco|@react-|react-|victory|rn-placeholder|redux-persist).+\\.js$',
  ],
  coveragePathIgnorePatterns: [
    '<rootDir>/node_modules',
    '<rootDir>/my-package',
  ],
  modulePathIgnorePatterns: [
    '<rootDir>/my-package/node_modules/react-native',
  ]
  coverageThreshold: {
    global: {
      branches: 80,
      functions: 80,
      lines: 80,
      statements: 80,
    },
  },
  testResultsProcessor: '<rootDir>/node_modules/jest-html-reporter',
  coverageDirectory: '<rootDir>/reporters/coverage',
}

注意:

my-package是一个git子模块,可以单独测试,也可以与rootProject集成(有自己的jest配置)

EN

回答 1

Stack Overflow用户

发布于 2020-06-05 19:40:17

如果您的每个包都有一个react-native依赖项,那么您最终会得到两个副本,这会给jest带来问题。相反,将at作为根项目中的一个依赖项保留,但将其移动到子模块中的peerDependencies (并将第二个副本移动到devDependencies,以便能够对其进行隔离测试)。

您是否正在使用yalc在本地集成子模块?这是导致我同样的错误的一个原因,通过从根项目中删除.yalc文件夹来解决。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59037272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档