Acabei de gerar um novo arquivo de bloqueio npm, pacote-lock.json, como parte do meu fluxo de trabalho típico. Mas percebi que desta vez todos os hashes de integridade foram alterados de sha1 para sha512. O que esta acontecendo aqui?
"chalk": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
- "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
[…]
}
Respostas:
Pelo que posso ver, o npm mudou a soma de verificação de integridade de sha1 para sha512.
Se suas mudanças no git vão de sha1 para sha512, você deve fazer essa atualização uma vez e será bom depois disso.
Se outra pessoa que está trabalhando com a base de código e vê uma mudança git de sha512 para sha1 (que é o problema que eu estava tendo), você pode consertar executando o seguinte:
Descarte as mudanças no git para package-lock.json
Isso atualizará o npm e reinstalará todos os seus pacotes para que a nova soma de verificação (sha512) esteja presente.
fonte
node_modules
pasta, eu precisavanpm cache clear --force
também.Com base no que Dave respondeu. A correção que encontrei foi fazer o seguinte:
Fizemos isso para todos os nossos desenvolvedores ao mesmo tempo e interrompeu o problema sha-512 vs sha-1 que estava causando conflitos de mesclagem frustrantes.
fonte
Veja também https://github.com/npm/npm/issues/17749 que, embora afirme que o problema está "corrigido", não está. A remoção
node_modules
é uma solução alternativa.Pode haver um relacionamento com os sistemas operacionais. Estamos atingindo isso agora com desenvolvedores nas plataformas Linux e Windows.
fonte
Como @Daniel Cumings também tive que remover o
package-lock.json
para me livrar dos hashes sha1. Aqui estão os comandos da CLI do Windows para referência, que fazem o mesmo que o script de Daniel:fonte
Estou trabalhando em uma grande equipe. Forçar cada desenvolvedor a forçar a limpeza do
npm
cache é difícil e não confiável. Além disso, isso não ajuda sempre. Então, para quem ainda enfrenta esse problema de npm (o mesmo que eu) e nada mais ajuda - tente esta ferramenta baseada em git que construí recentemente: https://github.com/kopach/lockfix . Ele reverte assha512 -> sha1
alterações de integridade dos arquivos de bloqueio do npm. Se você adicionar isso ao seupostshrinkwrap
script depackage.json
- você deve eventualmente obter todas as propriedades de integridade definidas comosha512
e ter o arquivo de bloqueio consistente.fonte
Com base nos comentários e sugestões anteriores, eu precisava limpar a pasta node_modules existente, o cache, e então pegar o arquivo sha512 package-lock.json do git (que foi confirmado de outro computador) e, finalmente, fazer um npm i . Algo assim:
Após este package-lock.json usado sha512 e outras mudanças estabilizadas.
fonte