【问题标题】:Any ideas on how to get rid of Cannot find module 'ReactElementType' from 'ReactRef.js' when running Jest Tests运行 Jest 测试时如何摆脱无法从“React Ref.js”中找到模块“React Element Type”的任何想法
【发布时间】:2016-12-10 20:32:39
【问题描述】:

我将 react-native 升级到 0.39.0 并将 jest 升级到 17。出于某种原因,当我运行测试时,jest 17 在多个测试中引发错误。但是 Jest 工作正常吗?

  ● Test suite failed to run

Cannot find module 'ReactElementType' from 'ReactRef.js'

  at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:151:17)
  at Object.<anonymous> (node_modules/react-native/Libraries/Renderer/src/renderers/shared/stack/reconciler/ReactRef.js:14:344)
  at Object.<anonymous> (node_modules/react-native/Libraries/Renderer/src/renderers/shared/stack/reconciler/ReactReconciler.js:14:14)

【问题讨论】:

    标签: javascript react-native jestjs


    【解决方案1】:

    如果您使用旧版本的 babel-plugin-flow-react-proptypes(最高 0.18)和相当新的 React Native(0.38 及更高版本),则会发生这种情况。

    有关详细信息,请参阅this 问题。

    升级到插件的 0.19 版似乎可以解决问题。无论您使用的是哪个版本的 babel-jest,这都有效,甚至最高 18.0.0。

    即使您没有使用 babel-plugin-flow-react-proptypes,您也​​可能希望阅读他们的 explanations,了解可能导致此类错误的原因,即未正确剥离流类型。

    (请注意,正如您在上述问题中看到的那样,有些人在升级后开始出现不同的错误。目前尝试在 iOS 中运行应用程序时似乎确实是这种情况,但希望该问题能够得到解决在不久的将来。)

    【讨论】:

      【解决方案2】:

      原来 react-native 38 及以上结合 "babel-jest": "^17.0.0" 导致问题。 "babel-jest": "^16.0.0" 对我来说很好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-15
        • 1970-01-01
        • 1970-01-01
        • 2015-07-31
        • 2020-11-25
        • 1970-01-01
        • 2018-02-20
        • 2020-05-18
        相关资源
        最近更新 更多