Github me dice que una dependencia en mi archivo package-lock.json es vulnerable y está desactualizada. El problema es que si lo hago npm installo npm update, ninguno de ellos actualizar la dependencia en el archivo de paquete-lock.json.
He buscado mucho en Google sobre esto, así como borrado el archivo y listo npm install.
Si alguien puede ayudar a resolver esto, se lo agradecería enormemente. El paquete en cuestión es Hoek, que en realidad no tengo en mi archivo package.json.
Muchas gracias de antemano.
node.js
npm
package.json
package-lock.json
Raph117
fuente
fuente

Respuestas:
Parece que Hoek es una dependencia de una de sus dependencias (por lo tanto, un paquete que tiene en su package.json lo requiere de su propio package.json).
Ya ha intentado eliminar / reinstalar y actualizar las dependencias de su proyecto sin éxito, por lo que parece que la dependencia del paquete en cuestión tiene una versión explícita o máxima especificada.
Sin ver el package.json para cada una de sus dependencias, sería difícil aconsejar más sobre cómo forzar una actualización.
Editar: para ayudarlo a identificar qué paquetes están usando qué dependencias, puede usar el
lscomando de NPM : https://docs.npmjs.com/cli/lsPor ejemplo, para ver qué paquetes están usando Hoek:
npm ls hoekEdición 2: como Ulysse BN señala correctamente, si tiene NPM versión 6 o posterior, puede usar
npm audit fixpara pedirle a NPM que intente arreglar las vulnerabilidades por usted.Edición 3: aquellos que lean esto también deberían consultar la respuesta de JBallin a continuación. Amplía la información que he proporcionado aquí y es (en mi opinión) una respuesta más estructurada que aborda mejor la pregunta de OP. Sin embargo, si desea una solución rápida, esta respuesta debería ser suficiente.
fuente
package.jsonque depende de la versión específica (vulnerable) de Growl. Su respuesta está en el camino correcto y tal vez podría clavarla si pudiera compartir el comando que mostrará qué paquete (s)package.jsondepende del vulnerable que se muestrapackage-lock.json.TLDR: actualice el paquete principal usando
npm i $PARENT_PKG_NAME.Nota
Al actualizar las dependencias, debe revisar el CHANGELOG para ver si hay cambios importantes.
Diagnóstico
npm auditrevelará tanto el paquete vulnerable (tenga en cuenta que necesitará un archivo package-lock.json para esto, por lo que deberá ejecutarlonpm i), así como el paquete del que depende (si corresponde). Tenga en cuenta que también puede usarnpm ls $CHILD_PKG_NAMEpara ver sus dependencias principales.Intento de solución rápida
npm audit fixynpm audit fix --forcevale la pena intentarlo, pero a veces la corrección deberá realizarse manualmente (ver más abajo).Arreglo manual
Lo más probable es que el paquete principal ya haya solucionado sus dependencias (puede verificar esto yendo a su GitHub y revisando las confirmaciones recientes, o simplemente viendo si esto lo soluciona), por lo que puede ejecutar
npm i $PARENT_PKG_NAME @$NEW_VERSIONy actualizará su bloqueo de paquete .json.Si el padre no ha solucionado la vulnerabilidad
Si el mantenedor no parece responder, puede considerar usar un paquete alternativo que logre lo mismo o bifurcar el paquete y actualizar la vulnerabilidad usted mismo.
Verificar corrección
Ahora puede verificar que funcionó ejecutando
npm audity asegurándose de que no aparezcan vulnerabilidades. Confirme sus cambios, envíelos a GitHub, actualice sus notificaciones / alertas y ¡deberían desaparecer!fuente
Si tiene npm @ 6 o posterior, puede usarlo
npm audit fixpara sus problemas de seguridad.fuente
Utilizar:
npm instalará la última versión de hoek y su package.lock.json se actualizará.
fuente
Tuve este problema y descubrí que se debía a que el servidor en el que estaba ejecutando npm tenía una versión anterior de npm, package-lock.json solo es compatible con las versiones más recientes.
fuente
Intentaste esto: ve a la raíz de tu proyecto, elimina el
package-lock.jsonarchivonode_modulesy las.cachecarpetas, y luegonpm install.fuente
Para verificar paquetes npm vulnerables, simplemente use los siguientes comandos:
Para arreglar paquetes vulnerables de npm, simplemente use los siguientes comandos que también arreglarán package-lock.json:
fuente
Edite
package-lock.jsonmanualmente y actualice la versión del paquete vulnerable a la corregida y luego useEso instalará los paquetes de acuerdo con
package-lock.jsonignorandopackage.jsonprimero. Entonces usanuevamente, para asegurarse de que esté bien hecho. Si no ayuda, utilice otras soluciones dadas.
Más información aquí:
https://blog.npmjs.org/post/171556855892/introducing-npm-ci-for-faster-more-reliable
o aquí: https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities
fuente
Después de instalar nuevas dependencias, ejecute el siguiente comando para actualizar el archivo package-lock.json:
fuente