【问题标题】:Node v0.8.5 REPL: Cannot find module when requiring npm installed moduleNode v0.8.5 REPL:需要 npm 安装模块时找不到模块
【发布时间】:2021-10-31 19:54:05
【问题描述】:

我有一个带有 package.json 文件的节点应用程序声明我的依赖项。

我已经运行 npm install 将这些 deps 安装到本地 node_modules 文件夹中,当我运行我的应用程序时,一切正常。

问题是当我尝试通过启动节点 REPL 来激发一些新功能时:

$ node           
> require('hubot');
Error: Cannot find module 'hubot'

在 REPL 中,它似乎不知道查看 node_modules 内部。这是预期的行为,还是 hubot 很奇怪?

【问题讨论】:

  • 您是否从正确的目录运行您的 REPL?您需要从项目的根目录(node_modules 的父文件夹)运行它。
  • 是的。与 package.json & node_modules 相同的目录。
  • @adamesque 你有没有弄清楚为什么会这样?我在节点 5 上看到了同样的情况,我确信这只是我正在做的一些简单的错误。
  • @Joe 不,我从来没有,而且我不再使用hubot,所以这对我来说不再是问题。对不起!

标签: node.js npm


【解决方案1】:

您可以设置环境变量NODE_DEBUG 以查看节点尝试的路径:

export NODE_DEBUG=module
> require('toto')
Module._load REQUEST  toto parent: repl
looking for "toto" in ["/Users/laurent/repl/node_modules","/Users/laurent/node_modules","/Users/node_modules","/node_modules","/lusr/local/bin/node","/Users/laurent/.node_modules","/Users/laurent/.node_libraries","/usr/local/lib/node"]

【讨论】:

  • REPL 仅查看全局安装的节点模块,而不是仅安装在项目文件夹中的节点模块。所以这行不通。
猜你喜欢
  • 1970-01-01
  • 2012-09-17
  • 1970-01-01
  • 2014-11-19
  • 2019-12-12
  • 1970-01-01
  • 2011-08-20
  • 2015-10-19
  • 2020-07-08
相关资源
最近更新 更多