Невозможно разрешить криптографию модуля в реактивном

Я разместил это здесь, создал приложение Reaction-native с помощью

react-native init myapp
added web3 in package.json
npm install
react-native run-ios

но я получаю сообщение об ошибке не удается разрешить крипто модуля из web3-eth-account. Есть ли способ исправить это

невозможно разрешить криптографию введите описание изображения здесь

4 ответа

Crypto является модулем js узла, когда React Native запущен - он использует Javascript Core. Крипто не входит в это. Когда я установил crypto, я использовал следующий пакет:

https://www.npmjs.com/package/react-native-crypto

Инструкции:

npm i --save react-native-crypto
# install peer deps 
npm i --save react-native-randombytes
react-native link react-native-randombytes
# install latest rn-nodeify 
npm i --save-dev tradle/rn-nodeify
# install node core shims and recursively hack package.json files 
# in ./node_modules to add/update the "browser"/"react-native" field with relevant mappings 
./node_modules/.bin/rn-nodeify --hack --install
rn-nodeify will create a shim.js in the project root directory
// index.ios.js or index.android.js
// make sure you use `import` and not require!  
import './shim.js'
// ...the rest of your code

Импортировать shim.js в вашем файле index.js.

Когда вы сделали это, крипто должен быть доступен, если он все еще не работает, мне пришлось создать const в моем файле App.js следующим образом:

export const cryp = require('crypto');

И импортируйте его в нужные вам компоненты.

ОБНОВИТЬ

Я сделал новую сборку для этого, я следовал ниже:

react-native init TestApp

Следуйте инструкциям выше для Crypto.

Связанный:

react-native link

react-native run-ios

react-native-crypto не работайте с последней версией, поддерживающей реакцию 0.63.3 и реагировать на версию 16.13.1, больше нет.

я использовал crypto-jsпакет. Версия 3.1.9-1в моем приложении, ориентированном на реакцию. Работает хорошо. Вы можете добавить строку ниже в package.json файл.

"crypto-js": "3.1.9-1",

crypto - это библиотека узла, которая работает с браузером, однако мы можем использовать ее с реагирующим native с некоторыми упомянутыми ниже хаками, следуйте этим шагам и бум! вы готовы качаться.

      npm i --save react-native-crypto

==>  install peer deps 

npm i --save react-native-randombytes
react-native link react-native-randombytes

==>install latest rn-nodeify 
npm i --save-dev tradle/rn-nodeify

==>  install node core shims and recursively hack package.json files 
==> in ./node_modules to add/update the "browser"/"react-native" fieldwith relevant mappings 
./node_modules/.bin/rn-nodeify --hack --install

у меня была та же проблема, похоже, что крипто-модуль не поддерживается реакцией, потому что, когда я устанавливаю cryptpo, у него нет файла index.js в node_modules. поэтому моя проблема возникла, когда я пытался использовать jsonwebtoken, который использует криптографию для шифрования данных. поэтому я удалил jsonwebtoken и переключился на react-native-pure-jwt

Другие вопросы по тегам