React native Twilio React Native-无法解析模块加密

React native Twilio React Native-无法解析模块加密,react-native,twilio,node-modules,React Native,Twilio,Node Modules,我正在将twilio包实现到我的react原生项目中,当我在文件中需要它时,项目将不会加载,我看到以下错误: 无法从/Users/[myname]/Documents/Projects/React Native/[app name]/node_modules/twilio/lib/webhooks.js解析模块加密:无法在其模块映射或/Users/node_modules/crypto下的任何node_modules目录及其父目录中找到此模块 我尝试过直接安装加密包,但似乎也不起作用 有没有人遇

我正在将
twilio
包实现到我的react原生项目中,当我在文件中需要它时,项目将不会加载,我看到以下错误:

无法从/Users/[myname]/Documents/Projects/React Native/[app name]/node_modules/twilio/lib/webhooks.js解析模块加密:无法在其模块映射或/Users/node_modules/crypto下的任何node_modules目录及其父目录中找到此模块

我尝试过直接安装
加密
包,但似乎也不起作用

有没有人遇到过这个问题,并且有办法解决这个问题?

我建议你看看,有很多解决方案,因为似乎没有一个能解决所有人的问题

我建议您尝试以下方法(摘自链接中的问题):

  • rm-rf节点模块
  • rm-fr$TMPDIR/react-*
  • watchman watch del all
  • npm缓存清理和npm安装
  • npm从./node\u模块/react native开始

  • 但是检查一下它的完整性问题,许多人发现了其他对他们有效的修复。

    React Native似乎不接受基于依赖关系的某些包,Twilio就是其中之一


    虽然不是一个直接的解决方案,但我创建了一个解决此问题的方法,创建了一个单独的Express服务器来进行Twilio呼叫,并从我的React Native应用程序中调用该路由。

    您可以使用
    rn nodeify
    模块在React Native上获取
    加密

    rn nodeify
    添加到
    package.json中的
    devdependency

    "devDependencies": {
      "rn-nodeify": "^6.0.1"
    }
    
    将以下内容添加到同一文件的
    脚本
    部分:

    "scripts": {
      …
      "postinstall": "node_modules/.bin/rn-nodeify --install crypto --hack"
    }
    
    请注意,rn nodeify将修改您的package.json


    此处提供更多信息:

    React Native packager在发动机罩下使用巴别塔。这意味着您可以使用重写所有
    require('crypto')
    调用
    require('crypto-browserify')
    ,假设后者安装在
    节点模块中

    从2016年1月起,您可以使用
    .babelrc
    文件定义可选配置,因此这变得非常简单。首先,安装依赖项:

    npm安装--保存加密浏览
    npm安装--保存开发巴别塔插件重写要求
    
    然后将插件配置添加到
    .babelrc
    文件:

    {
    “预设”:[“反应本机”],
    “插件”:[
    [“巴别塔插件重写要求”{
    别名:{
    crypto:“crypto browserify”
    }
    }]
    ]
    }
    
    重新启动打包机,应该就是这样


    这与使用的方法相同,只是这里我们使用
    .babelrc
    而不是定义自定义转换器。当编写
    ReactNativify
    时,它不受支持,因此他们必须使用更复杂的解决方案。查看节点多填充的几乎完整列表。

    确保您也阅读了此黑客的来源->Iirc它使rng相当不安全,因此您必须对此表示同意。有关rn nodeify的更干净的替代方案,即ReactNativify,请参阅以下答案: