npm npm-install package.json package-lock.json

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í.