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

时间:2015-11-17 21:28:55

标签: node.js npm commonjs

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

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

而不是:

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

为什么?我看不到上行空间,这使得将文件移动到另一个位置非常困难。此外,由于您不知道要求引用的内容(例如require("../../../../../../index.js")

,因此难以阅读代码

1 个答案:

答案 0 :(得分:1)

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

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

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

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