【问题标题】:Node JS CLI + Node LibraryNode JS CLI + 节点库
【发布时间】:2013-09-11 19:41:51
【问题描述】:

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

完整(但不长)代码位于https://github.com/claydiffrient/reltoabs

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

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

【问题讨论】:

  • 试试:var reltoabs = require('app/reltoabs');

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


【解决方案1】:

如果您尝试请求的模块不是本机模块并且不以路径标识符开头,则 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-11-03
  • 1970-01-01
  • 1970-01-01
  • 2015-01-17
  • 1970-01-01
  • 1970-01-01
  • 2016-07-25
  • 2017-06-04
  • 2017-06-01
相关资源
最近更新 更多