Veo que estas son dos preguntas separadas en una. Déjame responder a ambas.
¿Debería enviar el archivo al repositorio?
Si. 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 de los NPM originales 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.
Los autores de dependencia pueden lanzar actualizaciones de la versión del parche y, de hecho, introducir un cambio importante que afectará su proyecto.
Dos desarrolladores que se ejecutan 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 un yarn.lock
archivo para guardar las versiones de dependencia exactas . Tener ese archivo en su lugar usará versiones almacenadas en yarn.lock
lugar de resolver versiones de package.json
. Esta estrategia garantiza que ninguno de los problemas descritos anteriormente suceda.
yarn.lock
es similar a lo npm-shrinkwrap.json
que se puede crear por npm shrinkwrap
comando. Verifique esta respuesta explicando las diferencias entre estos dos archivos.