Require dependency of another dependency in node modules

typeoneerror picture typeoneerror · Mar 16, 2012 · Viewed 12k times · Source

I've got a simple node app that has single dependency on another app on github. The dependency installs just fine with npm install, but when I try to require something installed there, it says it's not available. For example, the github app installs Mongoose as a dependency. I thought that this parent app would be able to access that module since it is in a child:

var mongoose = require('mongoose')

The structure looks something like this:

/app
  /node_modules
    /github_dependency [parent module]
      /node_modules
        /mongoose [child module]

Do I just have to include mongoose as a dependency as well in the parent app or is there a way of getting access to that module by way of the child?

Answer

Linus Thiel picture Linus Thiel · Mar 16, 2012

Do I just have to include mongoose as a dependency as well in the parent app or is there a way of getting access to that module by way of the child?

While it's possible for you to e.g. require('github/node_modules/mongoose'), the standard practice is to install all of your dependencies explicitly (i.e., you should include mongoose as a dependency of your app) and require('mongoose').