Vue project package.json y package-lock.json función y diferencia

Fuente original: https://www.cnblogs.com/yingaxiang/p/12932068.html

Introducción y uso del archivo package.json

  1. Ejecute el proyecto, línea de comando: npm run dev
  2. “dependencies” Ejecute la dependencia, necesita introducir la página para usar
  3. “devDependencies” Dependencia de desarrollo (utilizada en el entorno de producción), solo necesaria en la fase de desarrollo

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Cada vez que creamos un nuevo proyecto, encontraremos que hay dos archivos similares en el proyecto, y hay muchas cosas en uno y el otro es muy conciso, entonces cuál es la diferencia y la conexión entre ellos.

Las versiones anteriores a npm5 no generarán el archivo package-lock.json. El archivo package-lock.json se generará solo después de la versión npm5 y posteriores; cuando se usa npm para instalar el paquete, npm generará o actualizará el archivo package-lock.json, la versión npm5 y las versiones posteriores no son necesarias al instalar el paquete Agregar el parámetro --save (-s) guardará automáticamente las dependencias en package.json. Cuando el paquete esté instalado, el archivo package-lock.json se creará o actualizará automáticamente.

El archivo package-lock.json guarda la información de todos los paquetes en node_modules, incluidos los nombres, números de versión y direcciones de descarga de estos paquetes. Esto tiene la ventaja de que si vuelve a instalar npm, no necesita analizar las dependencias del paquete una por una, por lo que la velocidad de instalación se acelerará considerablemente.

En el archivo package-lock.json, lock significa "bloqueado". Se usa para bloquear el número de versión que se usa actualmente en desarrollo para evitar la actualización automática a la versión actualizada cuando npm se instala. Debido a que la nueva versión puede reemplazar la api anterior, lo que hace que el código anterior informe un error.

El archivo package.json solo puede bloquear la versión principal, que es el primer dígito del número de versión, y no puede bloquear las versiones secundarias posteriores. Cada vez que instale npm, obtendrá la última versión de la versión principal. Por motivos de estabilidad Difícilmente nos atrevemos a actualizar los paquetes dependientes a voluntad, lo que resultará en mucho trabajo, pruebas / adaptación, etc. En este momento, apareció el archivo package-lock.json, por lo que cada vez que instale una dependencia, ser bloqueado En esta versión que ha instalado.

El archivo package.json registra todos los módulos necesarios en su proyecto. Cuando ejecute npm install, el nodo primero leerá toda la información de dependencias del archivo package.json y luego la comparará con los módulos en node_modules según la información de las dependencias, descargará directamente si no hay ninguna y buscará actualizaciones ( la última versión) Los nodejs no se actualizarán porque hay un archivo package-lock.json, que se discutirá a continuación). Además, el archivo package.json solo registra la información de los módulos que instaló a través de npm install, y no se registrará la información de otros submódulos de los que dependen estos módulos.

El archivo package-lock.json bloquea los números de versión de todos los módulos, incluido el módulo principal y todos los submódulos dependientes. Cuando ejecuta npm install, el nodo lee el nombre del módulo del archivo package.json, obtiene el número de versión del archivo package-lock.json y luego descarga o actualiza. Por lo tanto, debido a que el archivo package-lock.json bloquea el número de versión, cuando ejecuta npm install, el nodo no actualizará automáticamente los módulos en el archivo package.json, debe usar npm install packagename (actualizar automáticamente el número de versión menor) O npm install packagename @ xxx (número de versión especificado) se actualizará para la instalación, y el número de versión en el archivo package-lock.json se actualizará en consecuencia.

Por cierto: cuando package.json y package-lock.json no existen y ejecutan "npm install", el nodo regenerará el archivo package-lock.json y luego registrará toda la información del módulo en node_modules en package-lock. json, pero no se generará el archivo package.json. En este momento, puede usar "npm init --yes" para inicializar el archivo package.json.

para resumir:

El número de versión del paquete introducido en el proyecto suele ir precedido del signo ^. Después de cada ejecución de npm install, el paquete descargado cambiará. Para la estabilidad del sistema, el bloqueo de paquete se creará o actualizará después de cada ejecución de npm instalar .archivo. Este archivo registra el número de versión específico de la última instalación, lo que equivale a proporcionar una referencia.Cuando ocurre un problema de compatibilidad de versiones, puede consultar este archivo para modificar el número de versión.

Supongo que te gusta

Origin blog.csdn.net/weixin_45811256/article/details/109465067
Recomendado
Clasificación