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é modifiés de sha1 à sha512. Que se passe-t-il ici?
"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==",
[…]
}
Réponses:
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 cela.
Si quelqu'un d'autre travaille avec la base de code et voit un changement git de sha512 à sha1 (ce qui est le problème que j'avais), vous pouvez le résoudre en exécutant ce qui suit:
Ignorez les modifications de git pour package-lock.json
Cela mettra à jour npm et réinstallera tous vos packages afin que la nouvelle somme de contrôle (sha512) soit présente.
la source
node_modules
dossier, j'en avais besoinnpm cache clear --force
aussi.S'appuyant sur ce que Dave a répondu. Le correctif que j'ai trouvé était de faire ce qui suit:
Nous l'avons fait 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.
la source
Voir également https://github.com/npm/npm/issues/17749 qui, bien que prétendant que le problème est `` résolu '', ne l'est pas. La suppression
node_modules
est une solution de contournement.Il peut y avoir une relation avec les systèmes d'exploitation. Nous abordons ce problème en ce moment avec les développeurs sur les plates-formes Linux et Windows.
la source
En tant que @Daniel Cumings, j'ai également dû supprimer le
package-lock.json
pour me débarrasser des hachages sha1. Voici les commandes Windows CLI pour référence, qui font la même chose que le script de Daniel:la source
Je travaille en grande équipe. Forcer chaque développeur à forcer le nettoyage du
npm
cache est difficile et peu fiable. De plus, cela n'aide pas à chaque fois. Donc, pour tous ceux qui sont toujours confrontés à ce problème de npm (comme moi) et que rien d'autre n'aide - essayez cet outil basé sur git que j'ai récemment construit: https://github.com/kopach/lockfix . Il annule lessha512 -> sha1
modifications d'intégrité des fichiers de verrouillage de npm. Si vous ajoutez ceci à votrepostshrinkwrap
script depackage.json
- vous devriez finalement obtenir toutes les propriétés d'intégrité définies sursha512
et avoir un fichier de verrouillage cohérent.la source
En s'appuyant davantage sur les commentaires et suggestions précédents, pour moi, je devais effacer le dossier node_modules existant, le cache, puis récupérer le fichier sha512 package-lock.json de git (qui a été commis depuis un autre ordinateur), et enfin faire un npm i . Quelque chose comme ça:
Après ce package-lock.json a utilisé sha512 et d'autres changements se sont stabilisés.
la source