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?
1 comment
[ 4.0 ms ] story [ 11.1 ms ] threadNPM'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?