【问题标题】:"Unable to resolve module" in react native本机反应中的“无法解析模块”
【发布时间】:2016-02-03 18:54:54
【问题描述】:

在这种情况下,我需要request-promise,但是当我启动 react native 项目时,我得到了错误:

"Unable to resolve module x. If you are sure the module is there, try restarting the packager."

对于request-promiserequest 依赖项的每个依赖项都会报告此错误。我已经重新启动了打包程序以及删除 node_modules 并重新安装。总的来说,这个错误是由什么引起的,具体来说,有什么办法可以解决呢?

节点 v4.2.1,npm v2.14.7

【问题讨论】:

  • 不确定,但是要获得与“请求-承诺”类似的功能,您是否尝试过使用 fetch? developer.mozilla.org/en-US/docs/Web/API/Fetch_API
  • fetch()Promise() 应该可以开箱即用。就像@NaderDabit 一样,我很幸运。为了修复模块导入问题,我已经能够在 Xcode 中清理项目,重建它,然后再次运行它而没有错误。你试过吗?
  • 这些是在服务器上发出的请求...我的印象是 fetch() 仅在 window 对象上可用。
  • 令我惊讶的是,对我来说,window 对象的方法在 react native 中是可用的,而 node 核心方法都不是。感谢您的提示。

标签: dependencies react-native node-modules


【解决方案1】:

在尝试使用另一个模块之前,我已经看到了这个错误。它让我发疯了一会儿。我创建了一个减少测试,将一个新项目隔离到一个组件。一旦我看到它起作用,我就知道它是该项目特有的。就我而言,我所要做的就是关闭一切并从头开始重新启动(不记得我是否重新启动了我的机器)。可能与缓存有关?不确定。

总结...

  1. 创建缩减测试以确保您正确使用该模块
  2. 重启一切

无论如何,这是核心中的相关代码。没有给我任何线索,但也许你比我聪明……

https://github.com/facebook/react-native/blob/b39b97546ac0e493723d73149c6950b04c2f203c/packager/react-packager/src/DependencyResolver/polyfills/require.js#L41

【讨论】:

  • 感谢@ChrisGeirman - 我已经确认在包含在 react native iOS“场景”之外的模块的正确使用,但是由于某种原因,当它在 react native 构建的上下文中使用时,那么这些错误就会成为一个问题。
【解决方案2】:

window 方法,例如 fetch,在 react native 中可用,而 node 核心方法不可用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-12
    • 2021-09-13
    • 1970-01-01
    • 2018-05-28
    • 2021-09-03
    • 2022-01-04
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多