es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Web3 React Native Expo V4.13

Con React Native Expo V4.13.0, al importar el módulo web3 V1.6.1, obtengo el siguiente error:

Unable to resolve module crypto from /Users/black/Desktop/test/node_modules/web3-eth-accounts/lib/index.js: crypto could not be found within the project or in these directories:
node_modules/web3-eth-accounts/node_modules
node_modules
../../node_modules

Si estás seguro de que el módulo existe, intenta estos pasos:

  • Borrar los relojes de watchman: watchman watch-del-all
  • Borrar node_modules
  • Correr yarn install Reset Metro’s cache: yarn start –reset-cache
  • Eliminar la caché: rm -rf /tmp/metro-*
24 | var Method = require('web3-core-method');
25 | var Account = require('eth-lib/lib/account');
26 | var cryp = (typeof global === 'undefined') ? require('crypto-browserify') : require('crypto');
| ^
27 | var scrypt = require('scrypt-js');
28 | var uuid = require('uuid');
29 | var utils = require('web3-utils');`

Ayer actualicé la versión de expo y ya no funcionaba, antes funcionaba bien. ¿Alguien tiene el mismo problema?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que el módulo ‘crypto’ no puede encontrarse en el proyecto o en los directorios especificados. Si está seguro de que el módulo existe, los siguientes pasos podrían ser útiles:

    1. Borrar los relojes de watchman: watchman watch-del-all
    2. Eliminar node_modules
    3. Ejecutar yarn install
    4. Restablecer la caché de Metro: yarn start --reset-cache
    5. Eliminar la caché: rm -rf /tmp/metro-*

    Vale la pena señalar que el fragmento de código proporcionado muestra que el archivo ‘index.js’ en el módulo ‘web3-eth-accounts’ está tratando de requerir el módulo ‘crypto’. Esta podría ser una posible razón por la cual se produce el error.

    El usuario mencionó que el problema comenzó a ocurrir después de actualizar la versión de Expo. Es posible que la versión actualizada de Expo haya causado un problema de compatibilidad con la versión existente de ‘web3js’. Actualizar a una versión más reciente de ‘web3js’ podría resolver el problema.

    Sin más información, es difícil determinar la causa exacta del problema. Si los pasos sugeridos no funcionan, podría ser útil proporcionar más detalles, como la versión de React Native, el sistema operativo y cualquier fragmento de código relevante.

Comments are closed.