title: How does NPM handle version conflicts?
body: <p>Since NPM version 3 node modules and dependencies are all installed at the same root level. But what if I install two modules that depend on two different versions of the same module? For instance, if I install async <code>npm i async@2.1.4</code>, which <a href="https://github.com/caolan/async/blob/master/package.json#L21" rel="noreferrer">requires lodash version 4.14.0</a>, then I install yeoman <code>npm i yo@1.8.5</code>, which <a href="https://github.com/yeoman/yo/blob/master/package.json#L55" rel="noreferrer">requires lodash version version 3.2.0</a>, how does npm resolve this conflict?</p>