Acabo de generar un nuevo archivo de bloqueo npm, package-lock.json, como parte de mi flujo de trabajo típico. Pero noté que esta vez todos los hashes de integridad se han cambiado de sha1 a sha512. ¿Que está sucediendo aquí?
"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==",
[…]
}
Respuestas:
Por lo que puedo ver, npm cambió la suma de verificación de integridad de sha1 a sha512.
Si sus cambios de git van de sha1 a sha512, debe hacer esa actualización una vez y estará bien después de eso.
Si alguien más trabaja con el código base y ve un cambio de git de sha512 a sha1 (que es el problema que estaba teniendo), puede solucionarlo ejecutando lo siguiente:
Descartar los cambios en git para package-lock.json
Esto actualizará npm y reinstalará todos sus paquetes para que la nueva suma de comprobación (sha512) esté presente.
fuente
node_modules
carpeta, también lo necesitabanpm cache clear --force
.Sobre la base de lo que respondió Dave. La solución que encontré fue hacer lo siguiente:
Hicimos esto para todos nuestros desarrolladores al mismo tiempo y esto detuvo el problema de sha-512 vs sha-1 que estaba causando frustrantes conflictos de fusión.
fuente
Consulte también https://github.com/npm/npm/issues/17749 que, aunque afirma que el problema está 'solucionado', no lo es. Eliminar
node_modules
es una solución.Puede haber una relación con los sistemas operativos. Estamos abordando esto ahora mismo con desarrolladores en plataformas Linux y Windows.
fuente
Como @Daniel Cumings, también tuve que eliminar
package-lock.json
para deshacerme de los hashes sha1. Aquí están los comandos de la CLI de Windows como referencia, que hace lo mismo que el script de Daniel:fuente
Trabajo en un gran equipo. Obligar a todos los desarrolladores a forzar la limpieza de la
npm
caché es difícil y no es confiable. Además, esto no ayuda siempre. Entonces, para cualquiera que aún enfrenta este problema de npm (igual que yo) y nada más ayuda, pruebe esta herramienta basada en git que he creado recientemente: https://github.com/kopach/lockfix . Se reviertesha512 -> sha1
los cambios de integridad de archivos de bloqueo de la NGP. Si agrega esto a supostshrinkwrap
script depackage.json
- eventualmente debería obtener todas las propiedades de integridad configuradassha512
y tener el archivo de bloqueo consistente.fuente
Continuando con los comentarios y sugerencias anteriores, para mí necesitaba borrar la carpeta node_modules existente, el caché, y luego tomar el archivo sha512 package-lock.json de git (que se comprometió desde otra computadora), y finalmente hacer un npm i . Algo como esto:
Después de este package-lock.json usó sha512 y otros cambios se estabilizaron.
fuente