2016-04-25 139 views
0

我的同事在他看來很棒。他不喜歡包含許多dotdot發生的路徑(超過2或3)。他的想法如下:使用postinstall命令創建符號鏈接到node_modules中感興趣的模塊。這樣,您可能需要需要的模塊,這樣的事情:的node_modules:符號鏈接還是不符號鏈接?

var some_module = require('some_module') 

代替

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

對於我來說,似乎是一個骯髒的黑客。我看到的一個缺點是可能與內置模塊和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 

說實話,這兩個解決方案似乎難看。

所以問題是,解決深層問題的正確方法是什麼?

回答

1

我們使用node-app-root-path來要求本地模塊。

例如:

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