节点JS CLI +节点库

时间:2013-09-08 00:34:06

标签: javascript node.js command-line-interface commonjs node-modules

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

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

因为我正在积极开发这个,所以我在开发期间使用npm link来处理。

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

1 个答案:

答案 0 :(得分:2)

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

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

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

这并不能解释您所获得的错误,但为了避免像您这样的错误,请尽可能相对地引用文件:

var reltoabs = require('./reltoabs')