
Yarn determinism - matharmin
https://yarnpkg.com/blog/2017/05/31/determinism/
======
matharmin
TL;DR:

NPM's shrinkwrap / package-lock.json contains the hoisting positions (folder
structure), which Yarn doesn't. Yarn's hoisting positions are only
deterministic for the same version - it may vary across different versions. On
the other hand, Yarn's lockfile generates much cleaner diffs.

No comment here on the actual implementation of NPM 5 installation process.
I've seen comments that installation order had an effect on NPM's folder
structure - is this still true?

My main issue with NPM in the past (version 3) were that it was very difficult
to actually keep the (1) package.json, (2) the shrinkwrap file and (3) the
node_modules folder in sync - any small mistake and one or two of those would
become inconsistent, usually requiring a re-install of node_modules, and often
even deleting and recreating the shrinkwrap file. Yarn has never given me
issues like this.

What is the experience like now that NPM 5 has been released?

