我有Error: Cannot find module xyz/abcd
错误。
是,已安装所需的模块。
据module.require的伪代码在这里,它应该工作。
我试图require()
深入了解为什么它找不到我的文件。我的节点调试器不会进入require()。我也尝试过这项strace / grep NOENT
技术,但没有成功。
任何想法如何解决一个讨厌的require()
失败?
注意:以防万一:错误来自文件node_modules / xyz / a要求xyz / b。它应该根据文档工作。
通过更多的调查,我认为我找到了一个很好的技术:
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"]
顺便说一句,它表明节点根本不在我认为的位置搜索。是时候调查了...
故事的结尾:
1)看来节点没有处理安装了的模块npm link
。require(...)
有时无法从npm链接的模块内部选择文件。我不想进一步研究确切的错误条件,我只是得出结论,这npm link
非常脆弱。
2)当心节点一直在寻找当前工作目录的父目录中的node_modules!我从某个时候选择的应用程序的父文件夹中找到了这些模块!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句