npm - ¿Necesito tanto package-lock.json como package.json?
npm-install (3)
Después de actualizar mi NPM a la última versión (de 3.X a 5.2.0) y ejecutar
npm install
en un proyecto existente, obtengo un archivo
package-lock.json
creado
package-lock.json
.
Puedo decir que
package-lock.json
me da un árbol de dependencia exacto en lugar de
package.json
.
Solo a partir de esa información, parece que
package.json
es redundante y ya no es necesario.
¿Ambos son necesarios para que NPM funcione?
¿Es seguro o posible usar solo el archivo
package-lock.json
?
Los documentos en package-lock.json ( doc1 , doc2 ) no mencionan nada al respecto.
Editar :
Después de pensarlo un poco más, llegué a la conclusión de que si alguien quiere usar su proyecto con una versión anterior de NPM (anterior a 5.x), aún instalaría todas las dependencias, pero con versiones menos precisas (versiones de parche)
¿Necesita ambos
package-lock.json
y
package.json
?
No
¿Necesitas el
package.json
?
Si
¿Puedes tener un proyecto solo con el
package-lock.json
?
No
package.json
se usa para algo más que dependencias, como definir propiedades del proyecto, descripción, información de autor y licencia, scripts, etc.
package-lock.json
se usa únicamente para bloquear dependencias a un número de versión específico.
Si su pregunta es si el archivo de bloqueo debe comprometerse con su control de origen, debería hacerlo. Será ignorado bajo ciertas circunstancias.
Lo encontré hinchando solicitudes de extracción e historial de confirmación, por lo que si ve que cambia, realice una confirmación por separado.
package-lock.json
: registra la versión exacta de cada paquete instalado que le permite volver a instalarlos.
Las instalaciones futuras podrán construir un árbol de dependencias idéntico.
package.json
: registra la versión mínima que necesita la aplicación.
Si actualiza las versiones de un paquete en particular, el cambio no se reflejará aquí.