wake-up-neo.com

Warum hat package-lock.json den Integritäts-Hash von sha1 in sha512 geändert?

Ich habe gerade eine neue npm-Sperrdatei, package-lock.json, als Teil meines typischen Workflows generiert. Ich habe jedoch festgestellt, dass diesmal alle Integritäts-Hashes von sha1 in sha512 geändert wurden. Was passiert hier?

 enter image description here

67
Matt

Soweit ich sehen kann, hat npm die Integritätsprüfsumme von sha1 in sha512 geändert.

Wenn Ihre Git-Änderungen von sha1 auf sha512 gehen, sollten Sie dieses Update einmal durchführen und danach ist es gut.

Wenn jemand anderes mit der Codebase arbeitet und sieht, dass ein Git von sha512 zu sha1 wechselt (was das Problem ist, das ich hatte), können Sie das Problem beheben, indem Sie Folgendes ausführen:

Verwerfen Sie die Änderungen in git für package-lock.json

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

Dadurch wird npm aktualisiert und alle Pakete neu installiert, sodass die neue Prüfsumme (sha512) vorhanden ist.

51
Dave

Aufbauend darauf, was Dave geantwortet hat. Das Update, das ich gefunden habe, war folgendes zu tun:

npm i -g npm

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

Wir haben dies für alle unsere Entwickler zur gleichen Zeit gemacht, und damit wurde das Problem zwischen sha-512 und sha-1 gestoppt, was frustrierende Mischkonflikte verursachte.

13
Daniel Cumings

Siehe auch https://github.com/npm/npm/issues/17749 , das zwar behauptet, das Problem sei "behoben", aber nicht. Das Entfernen von node_modules ist eine Problemumgehung.

Es kann eine Beziehung zu Betriebssystemen geben. Wir treffen das gerade jetzt mit Entwicklern auf Linux- und Windows-Plattformen.

5
mrblewog

um auf früheren Kommentaren und Vorschlägen weiter aufzubauen, musste ich den vorhandenen node_modules-Ordner und den Cache löschen und dann die sha512 package-lock.json-Datei von git (die von einem anderen Computer festgeschrieben wurde) entfernen und schließlich ein npm i ausführen . Etwas wie das:

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

Nach diesem package-lock.json wurde sha512 und andere Änderungen stabilisiert.

0
Mike Benna