yarn 1 · Build e tipos
A mensagem
The engine "node" is incompatible with this module. Expected version ">=20"
O que significa
O pacote que você instala declara no campo engines as versões de Node que precisa, e a que você usa está fora dessa faixa. O Expected e o Got que vêm depois põem a exigência e a sua versão lado a lado, então essas duas linhas bastam — e se isso só acontece na CI, a versão de Node dela difere da sua máquina. Atualizar com nvm install 20 && nvm use 20 é a resposta direta, e escrever a mesma versão no .nvmrc e na configuração da CI evita que se separem outra vez. O --ignore-engines do yarn passa por cima, mas apaga o aviso em vez de criar compatibilidade: se o pacote usa sintaxe mais nova, ele falha em execução com um erro de sintaxe. O npm relata a mesma situação como aviso EBADENGINE e por padrão não bloqueia a instalação.
A correção
nvm install 20 && nvm use 20- Impresso por
- yarn 1
- Build e tipos
- 10
Erros de build são uma ferramenta recusando antes de qualquer execução, então não quebram nada no momento em que aparecem — mas fazem duas perguntas: você vai corrigir o tipo ou o caminho para bater com a forma real, ou vai empurrar aquela linha com um as any ou um comentário de supressão? E é aqui que as coisas verdadeiras só na sua máquina — caixa das letras, extensões e variáveis de ambiente — aparecem pela primeira vez.
Como ler uma mensagem de erro
- Leia da primeira linha para baixo. Quanto mais abaixo, mais são as tripas da ferramenta; a causa costuma estar no topo.
- Se há arquivo e número de linha, comece ali — não o quadro superior da pilha, e sim a linha mais alta que nomeie um arquivo seu.
- Pesquise a mensagem literal, mas tire primeiro seus caminhos e nomes de variáveis: é isso que impede a busca de casar.
- A mesma condição é redigida de formas diferentes conforme a versão. Se os resultados não batem, some o número da versão.
- Antes de colar uma correção, veja o que ela descarta. Algumas não dá para desfazer.
Perguntas frequentes
Q. O que significa “The engine "node" is incompatible with this module. Expected version ">=20"”?
O pacote que você instala declara no campo engines as versões de Node que precisa, e a que você usa está fora dessa faixa. O Expected e o Got que vêm depois põem a exigência e a sua versão lado a lado, então essas duas linhas bastam — e se isso só acontece na CI, a versão de Node dela difere da sua máquina. Atualizar com nvm install 20 && nvm use 20 é a resposta direta, e escrever a mesma versão no .nvmrc e na configuração da CI evita que se separem outra vez. O --ignore-engines do yarn passa por cima, mas apaga o aviso em vez de criar compatibilidade: se o pacote usa sintaxe mais nova, ele falha em execução com um erro de sintaxe. O npm relata a mesma situação como aviso EBADENGINE e por padrão não bloqueia a instalação.
Q. Como corrigir?
nvm install 20 && nvm use 20 — antes de rodar, veja acima o que este comando descarta.
Q. Qual ferramenta imprime isso?
yarn 1. Fica em Build e tipos e a mensagem tem 11 palavras.