¿Confirmo el file package-lock.json creado por npm 5?

npm 5 fue lanzado hoy y una de las nuevas características incluye instalaciones deterministas con la creación de un file package-lock.json .

¿Se supone que este file debe mantenerse en control de fuente?

Supongo que es similar a yarn.lock y composer.lock , que se supone que deben mantenerse en control de fuente.

Sí, package-lock.json está destinado a ser registrado en el control de origen. Si está usando npm 5 ( npm install -g npm@latest ), puede ver esto en la línea de command: created a lockfile as package-lock.json. You should commit this file. created a lockfile as package-lock.json. You should commit this file. De acuerdo con npm help package-lock.json :

package-lock.json se genera automáticamente para cualquier operación en la que npm modifique el tree node_modules o package.json . Describe el tree exacto que se generó, de forma que las instalaciones posteriores pueden generar treees idénticos, independientemente de las actualizaciones de dependencia intermedias.

Este file está destinado a ser enviado a repositorys de origen y sirve para varios propósitos:

  • Describa una representación única de un tree de dependencies de modo que se garantice que los compañeros de equipo, las implementaciones y la continuous integration instalen exactamente las mismas dependencies.

  • Proporcione una installation para que los usuarios "viajen en el time" a estados previos de node_modules sin tener que comprometer el directory en sí.

  • Para facilitar una mayor visibilidad de los cambios de treees a través de diferencias de control de fuente legibles.

  • Y optimice el process de installation permitiendo que npm salte resoluciones de metadatos repetidas para packages instalados previamente.

Un detalle key sobre package-lock.json es que no se puede publicar, y se ignorará si se encuentra en cualquier otro lugar que no sea el package toplevel. Comparte un formatting con npm-shrinkwrap.json (5), que es esencialmente el mismo file, pero permite la publicación. Esto no se recomienda a less que se implemente una herramienta de CLI o que se utilice el process de publicación para producir packages de producción.

Si tanto package-lock.json como npm-shrinkwrap.json están presentes en la raíz de un package, package-lock.json se ignorará por completo.

Sí, está previsto que se registre. Quiero sugerir que reciba su compromiso exclusivo. Encontramos que agrega mucho ruido a nuestros diffs.

Puede consultar los documentos oficiales: https://docs.npmjs.com/files/package-lock.json

Sí, puedes confirmar este file. package-lock.json se genera automáticamente para cualquier operación en la que npm modifique el tree node_modules o package.json . Describe el tree exacto que se generó, de forma que las instalaciones posteriores pueden generar treees idénticos, independientemente de las actualizaciones de dependencia intermedias.