0

我正在创建一个节点库,其中包含一个可以使用它的 CLI。

完整(但不长)代码可在https://github.com/claydiffrient/reltoabs找到。

因为我正在积极开发它,所以我npm link在开发过程中使用 a 来工作。

给我带来麻烦的部分似乎在cli.js文件中。当我通过var reltoabs = require('reltoabs')节点包含模块时,会返回一个错误,指出该reltoabs模块不存在,但它在 node_modules 中。知道我怎样才能完成这项工作吗?

4

1 回答 1

2

如果您尝试要求的模块不是本机模块并且不以路径标识符开头,那么 Node 将首先查找当前模块的父目录并附加/node_modules. 然后 Node 将在该目录中查找,如果该模块不存在,那么它将遍历文件系统树,直到到达根目录。

假设您正在从模块文件夹进行开发,您的 require 会执行以下搜索:

/module/path/lib/node_modules/reltoabs
/path/lib/node_modules/reltoabs
/lib/node_modules/reltoabs

这并不能解释您遇到的错误,但为了避免像您这样的错误,请尽可能参考文件:

var reltoabs = require('./reltoabs')
于 2013-09-15T02:25:49.063 回答