yarn.lock

Para conseguir instalaciones consistentes en todas las máquinas, Yarn necesita más información que las dependencias que se configura en tu package.json. Yarn necesita almacenar exactamente las versiones que se instalaron de cada dependencia.

Para hacer esto Yarn utiliza un archivo yarn.lock en la raíz de tu proyecto. Estos archivos lock (“lockfiles”) se ven así:

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
package-1@^1.0.0:
  version "1.0.3"
  resolved "https://registry.npmjs.org/package-1/-/package-1-1.0.3.tgz#a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0"
package-2@^2.0.0:
  version "2.0.1"
  resolved "https://registry.npmjs.org/package-2/-/package-2-2.0.1.tgz#a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0"
  dependencies:
    package-4 "^4.0.0"
package-3@^3.0.0:
  version "3.1.9"
  resolved "https://registry.npmjs.org/package-3/-/package-3-3.1.9.tgz#a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0"
  dependencies:
    package-4 "^4.5.0"
package-4@^4.0.0, package-4@^4.5.0:
  version "4.6.3"
  resolved "https://registry.npmjs.org/package-4/-/package-4-2.6.3.tgz#a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0"

Esto es comparable a archivos lock (“lockfiles”) en otros gestores de paquetes como Bundler o Cargo. Es similar al archivo npm-shrinkwrap.json de npm, sin embargo, no tiene pérdidas y crea resultados reproducibles.

Manejado por Yarn

El archivo yarn.lock se genera automáticamente y debe ser manejado enteramente por Yarn. Conforme agregues, actualices o elimines dependencias con la Interface de Linea de Comandos (CLI) de Yarn, el archivo yarn.lock se actualizará automáticamente. No edites este archivo directamente, ya que es fácil romper algo.

Paquete actual únicamente

Durante la instalación, Yarn solo utilizará el archivo yarn.lock de nivel superior e ignorará cualquier archivo yarn.lock que exista en las dependencias. El archivo yarn.lock incluye todo lo que Yarn necesita para bloquear las versiones de todos los paquetes en todo el árbol de dependencias.

Incluído en control de versiones

Todos los archivos yarn.lock deben ser incluidos en control de versiones (ej: git o mercurial). Esto permite a Yarn instalar exactamente el mismo árbol de dependencias en todas las máquinas, ya sea la computadora portátil de tu compañero de trabajo o un servidor de Integración Continua (CI).

Framework and library authors should also check yarn.lock into source control. No te preocupes de publicar el archivo yarn.lock, ya que no tendrá ningún efecto sobre los usuarios de la librería.

See https://yarnpkg.com/blog/2016/11/24/lockfiles-for-all/.