2016-04-25 19 views
0

Mein Kollege ist seiner Meinung nach eine gute Idee gekommen. Er mag keine Pfade, die viele Punkte enthalten (mehr als 2 oder 3). Seine Idee ist die folgende: Verwenden Sie Postinstall-Befehle, die Symlinks zu Modulen von Interesse in node_modules erstellen würden. Auf diese Weise könnten Sie benötigte Modul so etwas verlangen:node_modules: Symlink oder nicht Symlink?

var some_module = require('some_module') 

statt

var some_module = require('../../../another/branch/some_module') 

Für mich ist es wie ein schmutziger Hack scheint. Ein Nachteil, den ich sehe, ist eine mögliche Kollision mit eingebauten und npm-Modulen. Aber es könnte ein kleines Problem sein.

Ich habe eine andere Lösung vorgeschlagen - separates Modul zu erstellen, die Module von Interesse und verweisen sie durch sie registrieren würde:

// a/branch/some_module.js 
module.exports = 5 
require('register')('some_module', module.exports) 

// another/branch/interested_module.js 
var some_module = require('register')('some_module') // 5 

ehrlich zu sein, beide Lösungen scheint hässlich.

Also, die Frage ist, was ist der richtige Weg, um das Problem der tiefen Deps zu lösen?

Antwort

1

Wir verwenden node-app-root-path, um lokale Module zu erfordern.

Zum Beispiel:

var appRoot = require('app-root-path'); 
var myModule = require(appRoot + '/lib/my-module.js');