Skip to main content

dependency-tree

Resolve Dependency Tree

  • Resolve Dependency Tree
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: template-stack-js@0.0.0-development
npm ERR! Found: @typescript-eslint/parser@7.4.0
npm ERR! node_modules/@typescript-eslint/parser
npm ERR! dev @typescript-eslint/parser@"^7.4.0" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer @typescript-eslint/parser@"^5.0.0" from @typescript-eslint/eslint-plugin@5.62.0
npm ERR! node_modules/@typescript-eslint/eslint-plugin
npm ERR! dev @typescript-eslint/eslint-plugin@"^5.50.0" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!

Interpretando o Erro

  • Código do Erro: ERESOLVE indica que o npm encontrou um problema ao tentar resolver o árvore de dependências do projeto.
  • Problema Encontrado: O erro ocorre porque existe um conflito entre as versões das dependências especificadas no seu projeto. Especificamente:
    • Seu projeto tem uma dependência direta na versão 7.4.0 do pacote @typescript-eslint/parser.
    • Por outro lado, o pacote @typescript-eslint/eslint-plugin versão 5.62.0, que também é uma dependência do seu projeto, requer uma versão ^5.0.0 do @typescript-eslint/parser como uma dependência de pares (peer dependency). O sinal ^ indica que ele é compatível com as versões principais que começam com 5.x.x, mas você tem a versão 7.4.0 instalada, o que está fora desse intervalo.

Solução do Problema

Para resolver esse conflito, você tem algumas opções:

  1. Atualizar Dependências para Versões Compatíveis: Veja se existe uma versão do @typescript-eslint/eslint-plugin que seja compatível com a versão 7.4.0 do @typescript-eslint/parser. Se existir, atualize para essa versão.
  2. Downgrade de Dependências: Faça o downgrade do @typescript-eslint/parser para uma versão que seja compatível com ^5.0.0, o que significa algo dentro do intervalo de versão 5.x.x.
  3. Uso de -force ou -legacy-peer-deps:
    • -force: Isso forçará o npm a aceitar o conflito de dependências e continuar com a instalação, o que pode resultar em comportamento imprevisível do código.
    • -legacy-peer-deps: Esta opção fará com que o npm ignore os conflitos de dependência de pares e prossiga com a instalação das versões especificadas no package.json, similar ao comportamento do npm v4 a v6.