Невозможно разрешить криптографию модуля в реактивном
Я разместил это здесь, создал приложение 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