为什么 npm 包经常使用 require 的相对路径(例如 ../../file)?

Why npm packages often use relative paths for require (e.g. ../../file)?

npm 上的许多包似乎以下列方式使用 require 函数:

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

而不是这个:

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

这是为什么?我看不出有什么好处,而且很难将文件移动到另一个位置。另外,代码更难阅读,因为您不知道 require 指的是什么(例如 require("../../../../../../index.js")

因为您不能在没有相对路径的情况下要求不在 node_modules 文件夹中的内容。

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

一些人已经实现了 NPM 模块来克服这个问题。这是其中之一:rootpath

您可以找到许多其他解决方案here,但 NPM 模块似乎是最简单的。