Until npm5 packages installed from local file system (npm install ./packages/subdir) copied the local module to the node_modules of the target.
In v5 local installation only creates a symlink without coping the module.
Unfortunately this behavior ruins the flat module structure introduced in npm3, if both your main module and the module you installed from local folder has the same dependency.
Let me clarify the problem with an example:
I have three modules involved, two local (/home/gsanta/moduleA, /home/gsanta/moduleB) and one from the npm repo (e.g: jquery).
moduleA depends on moduleB and jquery. moduleB depends on jquery.
Now I install moduleB into moduleA
cd /home/gsanta/moduleA
npm install ../moduleB
With npm4 or earlier I get the following clean dependency tree:
moduleA
moduleB
jquery
With npm5 it rather looks like this (because moduleB is only linked into moduleA not copied):
moduleA
moduleB
jquery
jquery
I don't know what kind of implications this behavior have, but for typescript it is clearly problematic, because in this case if jquery contains some typescript declaration files, those declarations will be duplicated making the typescript compiler throw nice error messages.