我正在创建一个包含要使用的CLI的节点库。
完整(但不长)的代码位于https://github.com/claydiffrient/reltoabs。
因为我正在积极开发它,所以在开发过程中使用npm link
进行处理。
给我麻烦的部分似乎在cli.js
文件中。当我通过var reltoabs = require('reltoabs')
节点包含模块时,会返回一个错误,指出reltoabs
模块不存在,但是它在node_modules中。知道我如何进行这项工作吗?
最佳答案
如果您要使用的模块不是本机模块,并且不以路径标识符开头,则Node将通过在当前模块的父目录中查找并附加/node_modules
来启动。然后,Node将在该目录中查找,如果模块不存在,则它将遍历文件系统树,直到到达根目录为止。
假设您正在从modules文件夹中进行开发,则需要进行以下搜索:
/module/path/lib/node_modules/reltoabs
/path/lib/node_modules/reltoabs
/lib/node_modules/reltoabs
这不能解释您遇到的错误,但是为了避免像您这样的错误,请尽可能引用文件:
var reltoabs = require('./reltoabs')