为什么npm包经常使用相对path进行require(例如../../file)?

npm上的一些软件包似乎使用require函数的方式如下:

var CounterActions = require('../actions/counter'); 

而不是这个:

 var CounterActions = require('mypackage/actions/counter'); 

这是为什么? 我看不到任何好处,而且很难将文件移到其他位置。 另外,读取代码比较困难,因为你不知道需求是指什么(例如require("../../../../../../index.js")

因为不能在没有相对path的情况下要求不在node_modules文件夹中的东西。

格式: var CounterActions = require('mypackage'); 保留在node_modules文件夹中。

有些人已经实施了NPM模块来克服这一点。 这里是其中的一个: rootpath

还有很多其他解决scheme可以在这里find,但是NPM模块似乎是最简单的。