Executando verificação de segurança...
1
Carregando publicação patrocinada...
1

O comando npm install --legacy-peer-deps é usado para contornar a funcionalidade de instalação automática de peerDependency ao instalar pacotes. Ele diz ao NPM para ignorar as dependências de pares e instalar apenas o pacote.

No NPM v7+, por padrão, npm install falhará quando encontrar peerDependencies conflitantes. Isso não era assim antes. Se você já tem um peerDependency instalado, mas não com uma versão nomeada pelo módulo, então o NPM v7+ lançará um erro. Adicionar --legacy-peer-deps ignora esse novo requisito, com o risco de introduzir mudanças que quebram a funcionalidade.

Portanto, se o seu projeto estava quebrando com npm install, é provável que houvesse algum conflito de dependência que estava sendo ignorado com o uso de --legacy-peer-deps. Isso pode acontecer quando diferentes pacotes no seu projeto dependem de diferentes versões da mesma biblioteca. Com --legacy-peer-deps, o NPM ignora esses conflitos e prossegue com a instalação.

1

E uma vez usado o --legacy-peer-deeps, como tratar as peerdependecies manualmanente no package.json e nao precisar usar ele projeto?

Falo isso por quê na empresa subimos docker com legacy-peer-deps e vez ou outra temos que mudar versao na mao,corre o risco de quebrar algua feature no sistema..

1

Eu não sei se entendi sua pergunta, se você diz em deixar o "legacy-peer-deeps" ligado por padrão, você pode criar um arquivo .npmrc no mesmo nível de diretórios que o package.json e no conteúdo dele colocar:

legacy-peer-deps=true

Com isso não precisaria passar esse parâmetro ao npm install ou npm ci.
Mas novamente, não sei se entendi sua pergunta corretamente.

1

Bem, quero eu mesmo resolver as peer dependences para cada pacote.

Caso eu tenha um pacote com conflito de dependencias, basta criar uma peerDependencies com os pacotes listados no erro. Segue exemplo abaixo:

"peerDependencies": { "@angular/core": "^6.0.0" "@angular/core": "^7.0.0" }

Outra forma de adicionar a dependencia no projeto é executar o comando abaixo com a dependencia a ser adicionada e sua respectiva versão:

npm install --save-peer react^16.8.3 || ^17