Cómo hacer polyfill de módulos core de node en webpack 5
Autor: Vitto Rivabella
En este tutorial, aprenderás a hacer polyfill de los módulos core de Node en webpack versión 5 y superior usando el paquete react-app-rewired, instalando las dependencias necesarias y sobreescribiendo la configuración predeterminada de webpack.
¿Qué causa el error de polyfill de módulos core de node?
Hasta la última actualización de webpack versión ___, webpack < 5 solía incluir polyfills de NodeJS por defecto. Debido a que la versión actual de webpack ya no incluye polyfills de NodeJS por defecto, esto está causando problemas a los desarrolladores que usan create-react-app con webpack > 5 para construir aplicaciones con las librerías web3.js y alchemyweb3.js.
Así es como se ve el error de polyfill de módulos core de node:
4 pasos simples para corregir el error de polyfill de módulos core de node en webpack 5
El problema principal con create-react-app y el error de polyfill es que create-react-app, por defecto, oculta el archivo de configuración de webpack dentro de node-modules, y al hacer esto, genera el archivo en el momento del build, dejando a los desarrolladores sin poder modificarlo.
Por suerte existe un paquete, react-app-rewired, que permite a los desarrolladores editar fácilmente el archivo de configuración de webpack y corregir el error de polyfill de módulos core de node.
1. Instala react-app-rewired
Primero, instala el paquete react-app-rewired con tu gestor de paquetes preferido.
Instala el paquete react-app-rewired con yarn:
Instala el paquete react-app-rewired con npm:
2. Instala las dependencias faltantes
A continuación, instala estas dependencias faltantes:
- crypto-browserify
- stream-browserify
- assert
- stream-http
- https-browserify
- os-browserify
- url
Instala las dependencias faltantes con yarn:
yarn add process crypto-browserify stream-browserify assert stream-http https-browserify os-browserify url buffer
Instala las dependencias faltantes con npm:
3. Sobreescribe el archivo de configuración de webpack de create-react-app
En la carpeta raíz de tu proyecto, crea un nuevo archivo llamado config-overrides.js, y agrégale el siguiente código:
Este fragmento de código de config-overrides.js le indica a webpack cómo resolver las dependencias faltantes que se necesitan para dar soporte a las librerías de web3 y a los proveedores de wallets en el navegador.
4. Sobreescribe el package.json para incluir la configuración de webpack
Dentro del archivo package.json, reemplaza react-scripts por los scripts de react-app-rewired en los siguientes tres campos de scripts para actualizar la configuración de webpack:
- start
- build
- test
Así es como se ve el archivo package.json antes de reemplazar los react-scripts:
Así es como se ve el archivo package.json después de reemplazar los react-scripts por los scripts de react-app-rewired:
¡Eso es todo!
Ahora, el error de polyfill de módulos core de node debería estar corregido, los polyfills de NodeJS faltantes deberían estar incluidos en tu aplicación, y tu aplicación debería funcionar con web3.js y con la librería Alchemyweb3.js.
Boletín de Alchemy
Entérate primero de los lanzamientos
Suscríbete a nuestro boletín
Recibe las últimas actualizaciones de productos y recursos de Alchemy
Al ingresar tu correo electrónico, aceptas recibir nuestras comunicaciones de marketing y actualizaciones de productos. Reconoces que Alchemy procesa la información que recibimos de acuerdo con nuestro Aviso de Privacidad. Puedes cancelar tu suscripción en cualquier momento.
Artículos relacionados

Diseño de lecturas RPC de Solana para velocidad y confiabilidad líderes en la industria
Alchemy tiene la latencia de lectura de Solana más baja: 9.21 ms, cerca de 26% más rápido que el siguiente proveedor.

El costo de la latencia en el trading onchain
Los costos de latencia se manifiestan como la brecha entre el estado observado y la ejecución. Aquí se explica dónde aparece el retraso, por qué importa el p95 y cómo evaluar tu ruta RPC.

RPC de Robinhood Chain: acceso confiable y de baja latencia desde el lanzamiento
Un relato técnico de cómo Alchemy preparó la infraestructura de RPC y WebSocket en producción para el lanzamiento de Robinhood Chain, y qué deben hacer los desarrolladores para obtener la misma confiabilidad.