2016-04-25 18 views
0

私の同僚は、彼の意見で素晴らしいアイデアに来ています。彼は、ドットドットの数が多いパス(2つ以上3つ)を好きではありません。彼のアイデアは次のとおりです:node_modulesの対象となるモジュールへのシンボリックリンクを作成するpostinstallコマンドを使用します。それは汚いハックのように思える私にとってnode_modules:シンボリックリンクかどうかはシンボリックリンクですか?

var some_module = require('some_module') 

代わりの

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

:この方法で、あなたはそのような必要なモジュールの何かを必要とする可能性があります。私が見る欠点の1つは、組み込みモジュールとnpmモジュールとの衝突の可能性があることです。しかしそれは軽微な問題かもしれない。

私は別の解決策を提案している - 興味のあるモジュールを登録し、それを介してそれらを参照します別のモジュールを作成するには:正直に言うと

// 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 

を、両方のソリューションは醜いようです。

ですから、質問は深いdepsの問題を解決する適切な方法は何ですか?

答えて

1

node-app-root-pathを使用してローカルモジュールを必要としています。例えば

var appRoot = require('app-root-path'); 
var myModule = require(appRoot + '/lib/my-module.js'); 
関連する問題