从'ReactTestUtils.js'中找不到模块'react/lib/React'



我正在尝试使用ReactTestutils设置React Native项目的单位测试但是,我在运行NPM测试时会遇到此错误:

Cannot find module 'react/lib/React' from 'ReactTestUtils.js'

我感觉我的依赖项无法正常工作,但我找不到原因。我已经尝试降级React版本,但这无法解决我的问题并调整React-Dom版本,但我似乎找不到金色组合。

有人知道这是否是已知问题?我在这里找不到有关此文件的任何文档,也无法在React文档中找到。

这是我的软件包。JSON配置:

    "scripts": {
    "start": "react-native-scripts start",
    "eject": "react-native-scripts eject",
    "android": "react-native-scripts android",
    "ios": "react-native-scripts ios",
    "test": "jest --watch"
  },
  "dependencies": {
    "react-native-scripts": "0.0.40",
    "expo": "18.0.3",
    "react": "16.0.0-alpha.12",
    "react-native": "0.45.1",
    "react-navigation": "1.0.0-beta.11"
  },
  "devDependencies": {
    "enzyme": "^2.9.1",
    "jest": "19.0.2",
    "jest-expo": "~18.0.0",
    "react-addons-test-utils": "^15.6.0",
    "react-dom": "^15.6.1",
    "react-test-renderer": "^16.0.0-alpha.12"
  },
  "jest": {
    "preset": "react-native",
    "collectCoverage": true,
    "coverageDirectory": "__coverage__",
    "testRegex": "./__tests__/[^setup].*.js$",
    "transformIgnorePatterns": [
      "node_modules/(?!react-native|native-base|react-navigation|react-native-fabric)"
    ],
    "setupFiles": [
      "./__tests__/setup.js"
    ]
  }

您会使React(Web)和React-Native混淆。

ReactTestutils是用于反应的,并且不适用于反应。因此,您需要在其他地方寻找单位测试反应。另外,您应该从项目中删除作为依赖性的反应。

我在这里看到的问题是您同时依靠React 16和15。React/lib/*中的内部已在React 16中完全改变,因此不可能组合。您应该使用一切反应( - *)16或15,而不是两者的混合物。

最新的开玩笑和酶(v3)现在具有刚刚出现的React 16的完整兼容性!

最新更新