vscode在调试状态下无法打印npmlog.verbose的问题

vscode在调试状态下无法打印npmlog.verbose的问题

===提外话===

刚刚提交了问题然后修改了问题之后,不论在我的提问还是第三周问题列表中,均找不到问题了。

是被删除了,还是产品的bug呢?

我之前的提问链接是 https://class.imooc.com/course/qadetail/276123

如果有重复,请删除此贴


===回到正题===

问题描述:

按课程先将core包软链接到全局,然后执行core可以打印出npmlog.verbose

现在使用vscode的debug模式来传入args,npm.verbose打印不出来


vscode的launch.js配置如下

6018fc020911274723021552.jpg


断在检查入参逻辑中

debug参数已经获取了,修改LOG_LEVEL标记成功

6019001b0901c84c22061550.jpg


再断在log.verbose这句,查看log.level为verbose没有任何问题

6018fc0309286ba123841750.jpg


以上逻辑部分看起来没有任何问题

然而放开断点后,命令行中并没有打印出来。


尝试过的解决方式:

当前没有使用lerna,不存在npmlog信息覆盖的情况

追踪进npmlog苦恼定位不到问题


相关代码:

https://github.com/imooclego/lego-cli


麻烦老师和同学帮看,告诉我原因

另外,希望告知你是如何调试和发现问题的,谢谢了



正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
扬_灵 2021-02-02 17:53:09

同学你好,不好意思,这边在测试的时候配置的参数错误,针对你说的问题,已经在定位中了。

  • 提问者 renderman #1

    老师你好,你的回复我的理解是:

    1,args.debug获取不到,因此进入不了条件分支

    2,debug模式下vscode不能正确运行npmlog.verbose,而webstorm能

    我的理解正确吗?


    第一个问题:

    我的第二张图已经进入了args.debug分支了,且修改成功了

    我的第三张图已经说明,log.level值已经是verbose了

    所以,“vscode调试下为何打印不出npmlog.verbose”


    第二个问题:

    webstorm就能,vscode就不能

    这也太玄学了,诶


    还是感谢你的回复

    2021-02-02 18:02:37
  • 扬_灵 回复 提问者 renderman #2

    同学你好,npmlog.verbose断点测试时通过this.write向控制台输入流,

    http://img1.sycdn.imooc.com//climg/60194ad609053dba14780708.jpg

    this.write的内部执行的是stream.write,stream是node的process.stderr(标准错误流),

    http://img1.sycdn.imooc.com//climg/60194aef09fc377013660724.jpghttp://img1.sycdn.imooc.com//climg/60194b04093ea98915021130.jpg

    其内部是通过c++实现的,没有输出信息就是vscode控制台内部的问题。


    2021-02-02 20:57:17
  • 提问者 renderman 回复 扬_灵 #3

    ​vscode的控制台部分是c++写的是吗?

    代码跟踪到stream.write都是对的,之后就无法跟踪了,所以得出了这个结论对吗?


    佩服你的调试能力



    2021-02-02 23:30:24
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师