Requerir dependencia de otra dependencia en módulos de nodo

Tengo una aplicación de nodo simple que tiene una sola dependencia de otra aplicación en github. La dependencia se instala muy bien con la npm install , pero cuando trato de requerir que se instale algo allí, dice que no está disponible. Por ejemplo, la aplicación github instala Mongoose como una dependencia. Pensé que esta aplicación para padres podría acceder a ese módulo ya que está en un niño:

 var mongoose = require('mongoose') 

La estructura se ve algo como esto:

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

¿Debo incluir la mongoose como una dependencia también en la aplicación para padres o hay una manera de obtener acceso a ese módulo a través del niño?

¿Debo incluir la mongoose como una dependencia también en la aplicación para padres o hay una manera de obtener acceso a ese módulo a través del niño?

Si bien es posible que usted, por ejemplo, require('github/node_modules/mongoose') , la práctica estándar es instalar explícitamente todas sus dependencias (es decir, debe incluir mongoose como una dependencia de su aplicación) y require('mongoose') .

Para un caso más robusto, que es bueno en situaciones como las pruebas, puede usar la siguiente función:

 var Module = require('module'); var path = require('path'); function requireFrom(self, parent, name) { var pPath = Module._resolveFilename(parent, self); var m = new Module(pPath, module); m.filename = pPath; m.paths = Module._nodeModulePaths(path.dirname(pPath)); return m.require(name); } 

que se puede utilizar de la siguiente manera

 requireFrom(module, 'github_dependency', 'mongoose')