Ich habe gerade eine neue npm-Sperrdatei, package-lock.json, als Teil meines typischen Workflows generiert. Aber ich habe festgestellt, dass diesmal alle Integritäts-Hashes von sha1 auf sha512 geändert wurden. Was passiert hier?
"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==",
[…]
}
Antworten:
Soweit ich sehen kann, hat npm die Integritätsprüfsumme von sha1 in sha512 geändert.
Wenn Ihre Git-Änderungen von sha1 zu sha512 wechseln, sollten Sie dieses Update einmal durchführen, und danach ist es gut.
Wenn jemand anderes mit der Codebasis arbeitet und sieht, dass sich ein Git von sha512 auf sha1 ändert (was das Problem ist, das ich hatte), können Sie es beheben, indem Sie Folgendes ausführen:
Verwerfen Sie die Änderungen in git für package-lock.json
Dadurch wird npm aktualisiert und alle Ihre Pakete neu installiert, sodass die neue Prüfsumme (sha512) vorhanden ist.
quelle
node_modules
Ordners brauchte ichnpm cache clear --force
auch.Aufbauend auf dem, was Dave geantwortet hat. Das Update, das ich gefunden habe, war das Folgende:
Wir haben dies für alle unsere Entwickler gleichzeitig getan und damit das Problem zwischen sha-512 und sha-1 gestoppt, das zu frustrierenden Zusammenführungskonflikten führte.
quelle
Siehe auch https://github.com/npm/npm/issues/17749, das zwar behauptet, das Problem sei "behoben", aber nicht. Das Entfernen
node_modules
ist eine Problemumgehung.Möglicherweise besteht eine Beziehung zu Betriebssystemen. Wir treffen dies gerade mit Entwicklern auf Linux- und Windows-Plattformen.
quelle
Als @Daniel Cumings musste ich auch die entfernen
package-lock.json
, um die sha1-Hashes loszuwerden. Hier sind die Windows-CLI-Befehle als Referenz, die dasselbe wie Daniels Skript tun:quelle
Ich arbeite in einem großen Team. Es
npm
ist schwierig und nicht zuverlässig, jeden Entwickler dazu zu zwingen, einen sauberen Cache zu erzwingen . Auch das hilft nicht jedes Mal. Für alle, die immer noch mit diesem npm-Problem konfrontiert sind (genau wie ich) und nichts anderes hilft, probieren Sie dieses Git-basierte Tool aus, das ich kürzlich erstellt habe: https://github.com/kopach/lockfix . Es werdensha512 -> sha1
Integritätsänderungen der Sperrdateien von npm zurückgesetzt. Wenn Sie dies zu Ihrempostshrinkwrap
Skript vonpackage.json
- hinzufügen, sollten Sie schließlich alle Integritätseigenschaften festlegensha512
und die Sperrdatei konsistent haben.quelle
Aufbauend auf früheren Kommentaren und Vorschlägen musste ich für mich den vorhandenen Ordner node_modules und den Cache löschen und dann die Datei sha512 package-lock.json von git (die von einem anderen Computer festgeschrieben wurde) abrufen und schließlich ein npm i ausführen . Etwas wie das:
Danach verwendete package-lock.json sha512 und andere Änderungen stabilisierten sich.
quelle