Como fazer polyfill de módulos core do node no webpack 5
Autor: Vitto Rivabella
Neste tutorial, você vai aprender a fazer o polyfill dos módulos core do Node no webpack versão 5 e superior usando o pacote react-app-rewired, instalando as dependências necessárias e sobrescrevendo a configuração padrão do webpack.
O que causa o erro de polyfill dos módulos core do node?
Até a última atualização do webpack versão ___, o webpack < 5 costumava incluir polyfills do NodeJS por padrão. Como a versão atual do webpack não inclui mais polyfills do NodeJS por padrão, isso está causando problemas para desenvolvedores que usam create-react-app com webpack > 5 para construir aplicações com as bibliotecas web3.js e alchemyweb3.js.
Veja como é o erro de polyfill dos módulos core do node:
4 passos simples para corrigir o polyfill dos módulos core do node no webpack 5
O principal problema com o create-react-app e o erro de polyfill é que o create-react-app, por padrão, esconde o arquivo de configuração do webpack dentro do node-modules e, ao fazer isso, gera o arquivo no momento do build, deixando os desenvolvedores sem conseguir modificá-lo.
Felizmente existe um pacote, o react-app-rewired, que permite aos desenvolvedores editar facilmente o arquivo de configuração do webpack e corrigir o erro de polyfill dos módulos core do node.
1. Instale o react-app-rewired
Primeiro, instale o pacote reach-app-rewired com o gerenciador de pacotes de sua preferência.
Instale o pacote react-app-rewired com yarn:
Instale o pacote react-app-rewired com npm:
2. Instale as dependências ausentes
Em seguida, instale estas dependências ausentes:
- crypto-browserify
- stream-browserify
- assert
- stream-http
- https-browserify
- os-browserify
- url
Instale as dependências ausentes com yarn:
yarn add process crypto-browserify stream-browserify assert stream-http https-browserify os-browserify url buffer
Instale as dependências ausentes com npm:
3. Sobrescreva o arquivo de configuração do webpack do create-react-app
Na pasta raiz do seu projeto, crie um novo arquivo chamado config-overrides.js e adicione o seguinte código a ele:
Este trecho de código do config-overrides.js diz ao webpack como resolver as dependências ausentes necessárias para suportar bibliotecas web3 e provedores de carteira no navegador.
4. Sobrescreva o package.json para incluir a configuração do webpack
No arquivo package.json, substitua react-scripts por react-app-rewired nos três campos de scripts a seguir para atualizar a configuração do webpack:
- start
- build
- test
Veja como é o arquivo package.json antes de substituir os react-scripts:
Veja o arquivo package.json depois de substituir os react-scripts pelos scripts do react-app-rewired:
É isso!
Agora, o erro de polyfill dos módulos core do node deve estar corrigido, os polyfills ausentes do NodeJS devem estar incluídos no seu app, e seu app deve funcionar com as bibliotecas web3.js e Alchemyweb3.js.
Newsletter da Alchemy
Seja o primeiro a saber sobre lançamentos
Assine nossa newsletter
Receba as últimas atualizações de produtos e recursos da Alchemy
Ao inserir seu endereço de e-mail, você concorda em receber nossas comunicações de marketing e atualizações de produtos. Você reconhece que a Alchemy processa as informações que recebemos de acordo com nosso Aviso de Privacidade. Você pode cancelar a inscrição a qualquer momento.
Artigos relacionados

Arquitetando leituras Solana RPC para velocidade e confiabilidade líderes do setor
A Alchemy tem a menor latência de leitura Solana: 9,21 ms, cerca de 26% mais rápido que o próximo provedor.

O custo da latência no trading onchain
Os custos de latência aparecem como a diferença entre o estado observado e a execução. Veja onde o atraso surge, por que o p95 importa e como avaliar seu caminho de RPC.

Robinhood Chain RPC: acesso confiável e de baixa latência no lançamento
Um relato técnico de como a Alchemy preparou a infraestrutura de RPC e WebSocket em produção para o lançamento da Robinhood Chain, e o que os builders devem fazer para obter a mesma confiabilidade.