3 ms·
I just filed a bug: https://github.com/npm/npm/issues/10999 https://github.com/npm/npm/issues/10999 I guess I'm not sure what level of non-determinism they exp
by tolmasky 11y ago
I just filed a bug: https://github.com/npm/npm/issues/10999 https://github.com/npm/npm/issues/10999
I guess I'm not sure what level of non-determinism they expect, but on this page: https://docs.npmjs.com/how-npm-works/npm3-nondet https://docs.npmjs.com/how-npm-works/npm3-nondet it appears to make the claim that the only effect is on tree structure, not the actual versions of packages that are picked up. And in fact in their example this IS the case. I think this is fine btw.
However, I have found edge cases where install order actually changes the versions of packages that are picked up, and in ways that make it very very difficult to work around (basically you will be forced to manually edit a shrink-wrap file -- so it is necessarily on the end user not the package writer).
Basically, if any package lists and absolute dependency (vs a semver range), it will affect ALL the packages alphabetically later than it and FORCE them to take the same dependency.