认真调试node.js'无法找到模块xyz/abcd'

 Hide-my-love 发布于 2023-02-04 15:10

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

是的,安装了所需的模块.

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

我试图require()深入了解为什么它找不到我的文件.我的节点调试器不会进入require().我已经尝试过这项strace / grep NOENT技术,但也没有成功.

知道如何解决令人讨厌的require()失败吗?

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

1 个回答
  • 通过调查更多,我想我发现了一个很好的技术:

    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到当前工作目录的父目录!我发现我的应用程序的父文件夹中的模块有时会被选中!

    2023-02-04 15:14 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有