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,请参阅以下答案: