Tengo problemas para importar web3 a reactjs. Para replicar mi problema, inicialice una nueva aplicación de reacción como tal
npx create-react-app my-app cd my-appluego abra la terminal en esta ubicación. Escribe:
npm install web3 npm installen el archivo App,js agregue la siguiente línea
import Web3 from "web3"; Recibí el error después de hacer npm start y luego obtuve el error sin resolver que es
Module not found: Error: Can't resolve 'stream' Module not found: Error: Can't resolve 'crypto'Traté de encontrar una solución en línea, en particular probé cada uno de
Ninguno parece funcionar conmigo. ¿Hay algún consejo sobre cómo resolver este problema? ¡Gracias!
Esta es mi solución a partir del 2 de febrero de 2022. Esto podría cambiar en una fecha futura.
Después de iniciar una aplicación React como tal
npx create-react-app my-app cd my-appnecesitará instalar algunos paquetes:
npm i web3, react-app-rewired, url, assert, buffer, crypto-browserify, stream-http, https-browserify, stream-browserify, os-browserifyLuego abre su editor de código favorito en mi caso, es el editor de código MS VS en su terminal
code . Cree un archivo JS en el directorio raíz como config-overrides.js
Copie y pegue el código disponible aquí
const webpack = require('webpack'); module.exports = function override(config, env) { //do stuff with the webpack config... config.resolve.fallback = { url: require.resolve('url'), assert: require.resolve('assert'), crypto: require.resolve('crypto-browserify'), http: require.resolve('stream-http'), https: require.resolve('https-browserify'), os: require.resolve('os-browserify/browser'), buffer: require.resolve('buffer'), stream: require.resolve('stream-browserify'), }; config.plugins.push( new webpack.ProvidePlugin({ process: 'process/browser', Buffer: ['buffer', 'Buffer'], }), ); return config; } Abra el package.json cambió los comandos de scripts a esto:
"scripts": { "start": "react-app-rewired start", "build": "react-app-rewired build", "test": "react-app-rewired test", "eject": "react-app-rewired eject" },¡Esto ha resuelto el problema para mí!
Estoy siguiendo pasos simples para superar este problema.
Después de importar web3 a la carpeta de la aplicación del cliente, desinstale react-scripts@5.0.0
luego reinstale react-scripts pero una versión inferior de 4.0.3 npm install react-scripts@4.0.3
No he necesitado ningún otro paso torpe hasta ahora... Pruébalo...
Intente instalar los módulos que faltan usando
npm i stream crypto