web-dev-qa-db-fra.com

Pourquoi package-lock.json a-t-il modifié le hachage d'intégrité de sha1 à sha512?

Je viens de générer un nouveau fichier de verrouillage npm, package-lock.json, dans le cadre de mon flux de travail typique. Mais j'ai remarqué que cette fois, tous les hachages d'intégrité ont été changés de sha1 à sha512. Que se passe-t-il ici?

 enter image description here

67
Matt

D'après ce que je peux voir, npm a changé la somme de contrôle d'intégrité de sha1 à sha512.

Si vos changements git vont de sha1 à sha512, vous devriez faire cette mise à jour une fois et ce sera bien après.

Si quelqu'un d'autre travaillant avec la base de code et voit un changement git de sha512 à sha1 (ce qui est le problème que j'ai eu), vous pouvez le réparer en exécutant ce qui suit:

Annule les modifications dans git pour package-lock.json

npm i -g npm
rm -rf node_modules/
npm i

Cela mettra à jour npm et réinstallera tous vos paquets afin que la nouvelle somme de contrôle (sha512) soit présente.

51
Dave

S'appuyant sur ce que Dave a répondu. Le correctif que j'ai trouvé était de faire ce qui suit:

npm i -g npm

cd {working directory}
rm -rf node_modules/
rm package-lock.json
npm cache clear --force
npm i

Nous avons fait cela pour tous nos développeurs en même temps et cela a arrêté le problème sha-512 vs sha-1 qui provoquait des conflits de fusion frustrants.

13
Daniel Cumings

Voir aussi https://github.com/npm/npm/issues/17749 qui, même s'il affirme que le problème est 'résolu', ne l'est pas. Supprimer node_modules est une solution de contournement.

Il peut y avoir une relation avec les systèmes d'exploitation. Nous sommes en train de nous en sortir en ce moment avec les développeurs sur les plateformes Linux et Windows.

5
mrblewog

en me basant sur les commentaires et les suggestions précédents, j’ai eu besoin d’effacer le dossier node_modules existant, le cache, puis de récupérer le fichier sha512 package-lock.json sur git (validé depuis un autre ordinateur), puis de créer un npm . Quelque chose comme ça:

npm i -g
npm rm -rf node_modules/
npm cache clear --force
git reset --hard
npm i

Après ce package-lock.json utilisé sha512 et d’autres modifications stabilisées.

0
Mike Benna