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?