npm install, missing node_modules folder

Problem

I'm trying to install a mini-application inside of another application using npm and the mini-application has all dependencies checked in. However, when I run npm install from the root of the containing application:

npm install git+ssh://git@github.com/blah/shmah

It doesn't install the node_modules folder

Also, it gives me a bunch of npm WARN excluding symbolic link... warnings.

npm WARN excluding symbolic link node_modules/.bin/buster -> ../buster/bin/buster
npm WARN excluding symbolic link node_modules/.bin/buster-autotest -> ../buster/bin/buster-autotest
npm WARN excluding symbolic link node_modules/.bin/buster-server -> ../buster/bin/buster-   server
npm WARN excluding symbolic link node_modules/.bin/buster-static -> ../buster/bin/buster-static
npm WARN excluding symbolic link node_modules/.bin/buster-test -> ../buster/bin/buster-test
npm WARN excluding symbolic link node_modules/.bin/grunt-modernizr -> ../grunt-modernizr/bin/grunt-modernizr
npm WARN excluding symbolic link node_modules/.bin/grunt-preprocess -> ../grunt-preprocess/bin/grunt-preprocess
npm WARN excluding symbolic link node_modules/.bin/grunt-symlink -> ../grunt-symlink/bin/grunt-symlink
npm WARN excluding symbolic link node_modules/.bin/hulk -> ../hogan.js/bin/hulk
npm WARN excluding symbolic link node_modules/buster/node_modules/.bin/buster-static -> ../buster-static/bin/buster-static
npm WARN excluding symbolic link node_modules/buster/node_modules/.bin/lodash -> ../lodash/build.js
npm WARN excluding symbolic link node_modules/buster/node_modules/buster-server-cli/node_modules/phantom-proxy/node_modules/.bin/express -> ../express/bin/express

...

What am I doing wrong here?

Problem courtesy of: uglymunky

Solution

I think I figured it out (?)

If I add a bundledDependencies array to my package.json, this problem goes away. I just need to be sure that every dependency that's being checked into the repo is included in the bundledDependencies array.

I would have figured this was a more common use case, however, so the fact that I had such a hard time finding anything on the subject makes me think I might be going about it the wrong way. More specifically, we are currently checking in these dependencies to avoid any issues when deploying to production, a better solution might be for us to switch to not checking the dependencies in and instead using npm shrinkwrap

Solution courtesy of: uglymunky

Discussion

There is currently no discussion for this recipe.

This recipe can be found in it's original form on Stack Over Flow.