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?
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.
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.
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.
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.