Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 9038|Respuesta: 0

¿Cuál es la package-lock.json generada por la instalación de npm?

[Copiar enlace]
Publicado en 13/12/2017 13:17:45 | | |
Para modificaciones npm node_modules árbol o cualquier package.json de acción, se generará automáticamente un package-lock.json. Describe el árbol exacto que se genera para que las instalaciones posteriores puedan generar el mismo árbol, independientemente de las actualizaciones intermedias de dependencias.

Este archivo está destinado a ser enviado al repositorio de código fuente y está disponible para diversos fines:

Describe una única representación del árbol de dependencias para garantizar que los compañeros, despliegues e integración continua aseguren que se instalen exactamente las mismas dependencias.

Proporciona a los usuarios una herramienta para "avanzar" a un estado de node_modules anterior sin tener que comprometer el propio directorio.

Facilitar una mayor visibilidad de los cambios en el árbol mediante diferencias legibles en el control de versiones.

Y optimizar el proceso de instalación permitiendo que npm omita la resolución duplicada de metadatos de los paquetes previamente instalados.

Un detalle clave de package-lock.json es que no puede ser publicado y será ignorado si se encuentra en cualquier lugar fuera del paquete de primera categoría. Comparte el formato con npm-shrinkwrap.json, básicamente es el mismo archivo pero permite publicar. Esto no se recomienda a menos que despliegues una herramienta CLI o utilices el proceso de lanzamiento para producir un paquete de producción.

Si tanto package-lock.json como npm-shrinkwrap.json existen en el directorio raíz de un paquete, package-lock.json serán ignorados por completo.

Enlace original: https://docs.npmjs.com/files/package-lock.json


Desde el lanzamiento de npm 5.x, el papel del bloqueo 5.6.0 ha cambiado muchas veces, y ahora muchos textos pequeños en blanco en Internet están atascados en la traducción anterior del documento.

Actualicé de npm3.x a npm5, pero descubrí que el fenómeno al ejecutar 'npm i' no era consistente con el artículo de divulgación científica de Internet.

Se menciona que, independientemente de cuánto se modifique package.json archivo, si npm i se ejecuta repetidamente, npm se descargará según la información de versión descrita en el archivo de bloqueo.

También se menciona que al repetir npm i, npm ignora la información del bloqueo y descarga el módulo de actualización según la información de versión semántica del paquete en el package.json (el bloqueo parece ser inútil).

**Según la información, las reglas de NPM I han cambiado tres veces desde el lanzamiento de NPM 5.0. **

1. Versión NPM 5.0.x, cambie el package.json, NPM I se descargará según el archivo de bloqueo

package-lock.json archivo no actualizado después de que package.json archivo se haya cambiado · Número #16866 · NPM/NPM https://github.com/npm/npm/issues/16866
Este problema se queja de este problema, obviamente cambié el package.json manualmente, ¿por qué no me das un paquete de mejoras? Y luego lleva al problema de la 5.1.0...

2. Después de la versión 5.1.0, la instalación de npm ignorará el archivo de bloqueo para descargar la última versión de npm

Entonces alguien planteó esta cuestión: ¿por qué se está ignorando el bloqueo de paquete? · Número #17979 · NPM/NPM https://github.com/npm/npm/issues/17979
La queja evolucionó finalmente hacia las reglas después de la versión 5.4.2.

3. Después de la versión 5.4.2, ¿por qué se ignora el bloqueo de paquete? · Número #17979 · NPM/NPM https://github.com/npm/npm/issues/17979


A grandes rasgos, si el package.json se cambia y el package.json es diferente del archivo de bloqueo, npm descargará el último paquete según el número de versión y el significado semántico del paquete al ejecutar 'npm i', y lo actualizará a bloqueo.

Si ambos están en el mismo estado, entonces ejecutar npm descargaré según el bloqueo, independientemente de si la versión real del paquete es nueva o no.






Anterior:Haz un informe de estadísticas y complementa el método del tiempo sin datos
Próximo:Tutorial de npm (4): Instalar paquetes npm localmente
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com