Caso você esteja enfrentando o erro "The engine node is incompatible with this module." e não saiba o que pode ter ocorrido, entenda que não é tão incomum quanto pode parecer.
Qual é a explicação do erro apresentado?
O erro geralmente acontece após a tentativa de instalação de uma versão recente de um pacote que você tentou incluir na sua aplicação. Quando você instala um pacote, a última versão disponível do pacote é baixada e colocada na pasta node_modules, e uma entrada correspondente é adicionada nos arquivos package.json e package-lock.json presentes na pasta atual.
O npm calcula as dependências e também instala a última versão delas.
E quando se enfrenta este erro de incompatibilidade, geralmente, como foi o meu caso, foi feita uma formatação do sistema, troca de sistema operacional no meio do desenvolvimento (caso você utilize um dual-boot) /ou uma grande atualização do Node.Js. Felizmente, podemos resolver este problema atualizando todos os pacotes e dependências globalmente.
Um exemplo real que aconteceu comigo, foi quando eu precisei iniciar uma aplicação que desenvolvi anteriormente em outro sistema operacional e o console me retornava um erro "The engine node is incompatible with this module. Expected version ^14.16.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0. Got 20.9.0"
Solução
Para resolver este problema atualizando para uma versão major desses pacotes, instale o pacote npm-check-updates globalmente.
npm install -g npm-check-updates
E depois, entrando na pasta da sua aplicação que possuiria a node_modules, aplique o seguinte comando:
ncu -u
Este comando atualizará a sua package.json, as dependencies e devDependencies.
Após isso, faça a atualização utilizando o comando npm update
e faça a reinstalação das dependências da aplicação. No meu caso, utilizei o gerenciador de pacotes yarn, então eu apliquei o comando de instalação.
yarn install // ou npm install
Assim sendo, você resolve o erro com eficácia. Ah! e uma dica, para descobrir novas atualizações dos pacotes, você pode aplicar o comando npm outdated
, este comando é responsável por verificar novas atualizações dos pacotes.
✅ Prontinho! espero que tenha conseguido solucionar esta questão utilizando esse artigo. Obrigado pela sua leitura até aqui.
Conheça a Cherry Code -> https://cherrycode.com.br