2012-08-07 109 views
5

我有一个节点应用程序,其中一个package.json文件声明我的依赖关系。节点v0.8.5 REPL:当需要安装npm模块时找不到模块

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

问题是,当我尝试发射了节点REPL秒杀了一些新的功能:

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

在REPL,它似乎并不知道往里node_modules。这是预期的行为,还是轮毂怪异?

+1

,您在正确的目录中运行你的REPL?您需要从项目的根目录('node_modules'的父文件夹)运行它。 – rdrey 2012-08-07 18:06:38

+0

是的。与package.json&node_modules相同的目录。 – adamesque 2012-08-07 19:09:59

+0

@adamesque你有没有想过为什么会发生这种情况?我在Node 5上看到了同样的情况,我确信这只是我做的一个简单的错误。 – Joe 2015-12-17 06:12:28

回答

6

您可以设置环境变量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"]