When Yarn was first released, it was a huge step forward for the JavaScript and NPM community. At the time, NPM did not support deterministic sub-dependency resolution. And Yarn was considerably faster, primarily due to the introduction of an offline cache.
Full article