uso usar que por paquetes instalar iniciar diferencias con yarnpkg

yarnpkg - usar - ¿Debo confirmar el archivo yarn.lock y para qué sirve?



yarn uso (7)

¡Sí! yarn.lock debe registrarse para que cualquier desarrollador que instale las dependencias obtenga exactamente el mismo resultado! Con npm [que estaba disponible en octubre de 2016] , por ejemplo, puede tener una versión de patch (digamos 1.2.0) instalada localmente, mientras que un nuevo desarrollador que ejecute una install nueva podría obtener una versión diferente (1.2.1).

Yarn crea un archivo yarn.lock después de realizar una yarn install .

¿Debería esto comprometerse con el repositorio o ignorarse? ¿Para qué sirve?


Depende de cuál sea su proyecto:

  1. ¿Tu proyecto es una aplicación? Entonces: si
  2. ¿Tu proyecto es una biblioteca? Si es así: no

Una descripción más elaborada de esto se puede encontrar en este número de GitHub donde uno de los creadores de Yarn, por ejemplo. dice:

Package.json describe las versiones deseadas deseadas por el autor original, mientras que yarn.lock describe la última configuración válida conocida para una aplicación determinada.

Solo se yarn.lock el yarn.lock yarn.lock del proyecto de nivel superior. Por lo tanto, a menos que los proyectos se usen de manera independiente y no se instalen en otro proyecto, entonces no sirve de nada comprometer yarn.lock -file; en cambio, siempre dependerá del package.json -file para transmitir qué versiones de dependencias el proyecto espera entonces.


Desde mi experiencia, diría que sí, deberíamos comprometer el archivo yarn.lock . Se asegurará de que, cuando otras personas usen su proyecto, obtengan las mismas dependencias que su proyecto esperaba.

Del doc.

Cuando ejecuta yarn o yarn add, Yarn generará un archivo yarn.lock dentro del directorio raíz de su paquete. No es necesario que lea o comprenda este archivo, simplemente instálelo en el control de código fuente. Cuando otras personas comienzan a usar Yarn en lugar de npm, el archivo yarn.lock se asegurará de que obtengan exactamente las mismas dependencias que usted.

Uno podría argumentar que podemos lograrlo reemplazando ^ con -- . Sí, podemos npm , pero en general, hemos visto que la mayoría de los paquetes npm vienen con notación ^ , y tenemos que cambiar la notación manualmente para garantizar la versión de dependencia estática, pero si usa yarn.lock se asegurará programáticamente su versión correcta.

También como Eric Elliott dijo here

No .gitignore hilo.lock. Está allí para garantizar una resolución de dependencia determinista para evitar errores de "funciona en mi máquina".


Sí, debe registrarlo, consulte Migrar desde npm

Yarn generará un archivo yarn.lock dentro del directorio raíz de su paquete. No es necesario que lea o comprenda este archivo, simplemente instálelo en el control de código fuente.


Sí, deberías cometerlo. Para obtener más información sobre el archivo yarn.lock, consulte los documentos oficiales here


Supongo que sí, ya que Yarn versiones su propio archivo yarn.lock: https://github.com/yarnpkg/yarn

Se utiliza para la resolución de dependencia de paquete determinista.


Veo que estas son dos preguntas separadas en una. Déjame responder a ambas.

¿Debería enviar el archivo al repositorio?

Sí. Como se menciona en la respuesta de ckuijjer, se recomienda en la Guía de migración incluir este archivo en el repositorio. Siga leyendo para comprender por qué necesita hacerlo.

¿Qué es yarn.lock ?

Es un archivo que almacena las versiones de dependencia exactas para su proyecto junto con sumas de verificación para cada paquete. Esta es la forma de hilo para proporcionar coherencia para sus dependencias.

Para comprender por qué se necesita este archivo, primero debe comprender cuál era el problema detrás del package.json original de package.json . Cuando instale el paquete, NPM almacenará el rango de revisiones permitidas de una dependencia en lugar de una revisión específica (semver). NPM intentará recuperar la última versión de dependencia de la dependencia dentro del rango especificado (es decir, actualizaciones de parches sin interrupciones). Hay dos problemas con este enfoque.

  1. Los autores de dependencia pueden lanzar actualizaciones de la versión del parche y, de hecho, introducir un cambio importante que afectará su proyecto.

  2. Dos desarrolladores que ejecutan la npm install en diferentes momentos pueden obtener un conjunto diferente de dependencias. Lo que puede causar que un error no sea reproducible en dos entornos exactamente iguales. Esto podría causar problemas de estabilidad de compilación para servidores CI, por ejemplo.

El hilo, por otro lado, toma la ruta de la máxima previsibilidad. Crea el archivo yarn.lock para guardar las versiones de dependencia exactas . Al tener ese archivo en su lugar, yarn usará versiones almacenadas en yarn.lock en lugar de resolver versiones de package.json . Esta estrategia garantiza que ninguno de los problemas descritos anteriormente suceda.

yarn.lock es similar a npm-shrinkwrap.json que puede crearse mediante el comando npm shrinkwrap . Verifique esta respuesta explicando las diferencias entre estos dos archivos.