Yarn creates a yarn.lock
file after you perform a yarn install
.
Should this be committed to the repository or ignored? What is it for?
Yes, you should check it in, see Migrating from npm
Why is it for?
The npm client installs dependencies into the node_modules
directory non-deterministically. This means that based on the order dependencies are installed, the structure of a node_modules directory could be different from one person to another. These differences can cause works on my machine bugs that take a long time to hunt down.
Yarn resolves these issues around versioning and non-determinism by using lock files and an install algorithm that is deterministic and reliable. These lock files lock the installed dependencies to a specific version and ensure that every install results in the exact same file structure in node_modules
across all machines.