2016-04-25 170 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');