认真debuggingnode.js'找不到模块xyz / abcd'

我有Error: Cannot find module xyz/abcd错误。

是,安装所需的模块。

根据module.require的伪代码在这里 ,它应该工作。

我试图潜入require()来理解为什么找不到我的文件。 我的节点debugging器将不会进入require()。 我已经尝试了strace / grep NOENT技术而没有成功。

任何想法如何解决一个讨厌require()失败?

注意:以防万一:错误来自需要xyz / b的文件node_modules / xyz / a。 它应该按照文档工作。

通过调查,我觉得我发现了一个很好的技术:

 export NODE_DEBUG=module node my_script.js 

给出如此有趣的痕迹:

 looking for "/(...)/tests_init.js" in ["/home/(me)/.nave/installed/0.10.24/lib/node","/home/(me)/.node_modules","/home/(me)/.node_libraries","/home/(me)/.nave/installed/0.10.24/lib/node"] 

顺便说一句,它表明节点并没有在我所认为的地方进行search 。 调查时间


故事的结尾:

1)看来,节点不好处理与npm link安装模块。 require(...)有时无法从npm链接的模块中select文件。 我不想进一步调查确切的错误条件,我只会得出结论, npm link是非常脆弱的。

2)小心节点寻找node_modules一路进入当前工作目录的父目录! 我发现,从我的应用程序的父文件夹模块有时select!