Lo borré por accidente y he realizado muchos cambios package.jsondesde entonces. An npm installo npm updateya no genera package-lock.json. Intenté borrar mi caché npm y mi caché nvm, pero parece que nada funciona. Lo probé en varias versiones de Node.js (6.10.3 Node.js - 3.10.10 npm es en lo que me gustaría que funcionara), y no funciona en ninguna.
¿Hay alguna forma de forzar a npm a generar el package-lock.jsonarchivo?
node.js
npm
package-lock.json
Gran dinero
fuente
fuente

package-lock.jsonse genera automáticamente por defecto en npm a partir de v5, en las versiones anteriores, el nombre del archivo de bloqueo eranpm-shrinkwrap.jsony se generaba manualmente usandonpm shrinkwrapcommand.node 8.6.0y con élnpm 5.3.0y funcionó..gitignore. Accidentalmente tuvepackage-lock.jsonen el de.gitignorealguna manera y porquepackage-lock.jsonno aparecía en elgit statusme estaba confundiendo.Respuestas:
De forma predeterminada,
package-lock.jsonse actualiza cada vez que se ejecutanpm install. Sin embargo, esto se puede desactivar a nivel mundial mediante el establecimientopackage-lock=falsede~/.npmrc.Cuando la
package-lock=falseconfiguración global está activa, aún puede forzar lapackage-lock.jsonactualización del archivo de un proyecto ejecutando:Este comando es la única forma infalible de forzar una
package-lock.jsonactualización.fuente
package-lock.json.package-lock.jsonsolo es compatible con npm v5 +.En npm 6.x puede usar
Según https://docs.npmjs.com/cli/install.html
fuente
npm i --package-lock-only --only=productionno parece funcionar.package-lock.jsonsolo para dependencias de producción. Pero si lo ejecutanpm i --only=production, debería instalar solo las dependencias de producción. Entonces, su proceso de compilación podría verse así: instale todas las dependencias, compile la aplicación, eliminenode_modulese instale solo las dependencias de producción.Esto se responde en los comentarios;
package-lock.jsones una función ennpmv5 y superior.npm shrinkwrapes cómo se crea un archivo de bloqueo en todas las versiones denpm.fuente
package-lock.jsons no son exactamente lo mismo que los archivos shrinkwrap.npm-shrinkwrap.jsonse publicarán en el registro ypackage-lock.jsonno.npm shrinkwrapgeneranpm-shrinkwrap.json, pero ¿cómo se generapackage-lock.json?--package-lockComo varias respuestas explicaron, debe ejecutar:
npm iPERO si no resuelve ...
Verifique la versión de su
npmejecutable. (Para mí fue 3.xx que no usa elpackage-lock.json(en absoluto))npm -vDebe ser al menos 5.xx (que introdujo el archivo package-lock.json).
Para actualizar npm en Lunix, siga estas instrucciones.
Para obtener más detalles sobre los archivos del paquete de, lea esta historia del medio .
fuente
Si su versión de npm es inferior a la versión 5 , instale la versión superior para obtener la generación automática de package-lock.json .
Ejemplo: actualice su npm actual a la versión 6.14.0
Puede ver la última lista de versiones de npm por
fuente
package-lock.json se vuelve a generar cada vez que ejecuta
npm i.fuente
nodeynpm. Creo que esnpm> =5.0ynode> =7.0, pero no estoy 100% seguro de eso. No me funcionanode 6.11.3.