Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 使用Visual Studio Code调试VM上托管的节点应用程序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一些使用Visual studio Code调试我的应用程序的帮助,我的应用程序保存在由Oracle Virtual Box托管的虚拟机中.

已经为VM配置了node,express,node-inspector等的典型设置.我可以使用Node-inspector调试我的应用程序(即节点检查器的端口已在vm中转发,如果我设置了我的使用“node –debug-brk app.js”运行的应用程序,它侦听端口5858,我可以导航到localhost:8080 / debug?port = 5858开始调试).

但是在VSC中如果我在调试中使用“attach”选项,我根本无法进入断点.

有什么特别的东西我在这里缺少或者是否有我可以看到的任何日志文件 – 我在OSX Yosemite上并且VM OS在虚拟盒中运行是一个无头的OpenSuse,配备了vagrant?

注意:我已经尝试通过端口5858远程登录VM,我从VM内部获得了与本地计算机本身不同的响应,如下所示:

在VM内部:

telnet 127.0.0.1 5858
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Type: connect
V8-Version: 3.14.5.9
Protocol-Version: 1

嵌入主机:节点v0.10.32
内容长度:0

在VM之外:

telnet 127.0.0.1 5858
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

任何帮助将非常感激?

是的我在VM外部运行VSCode – 虚拟机是无头的.

端口已配置为在vagrant配置脚本内转发.然而,一位同事告诉我,可能有一项公司政策被强制要求我们与我们的网络适配器有关 – 防止/导致我的连接问题.

但是我尝试了不同的方法.我通过ssh为端口5858上的所有流量隧道连接:

ssh -i myprivatekey -L 5858:localhost:5858 tempuserlocalhost -p 2222

现在,当我开始调试应用程序(即node –debug app.js)并使用attach选项时,调试器显然会附加.然应该这样做,但它并没有在app.js中击中我的断点.

实际上,如果我暂停调试器,我会得到一个局部变量列表和一个调用堆栈,但显示以下错误

Error opening 'app.js' (File not found)

注意:app.js和其他代码文件不保存在VM上,它们保存在我的本地计算机上,并相应地配置了samba共享.也许这引起了混乱?

解决方法

我已经验证通过ssh隧道连接端口5858到目前为止可以连接到在VM内运行的节点并使用不涉及源路径的调试器功能(源路径用于断点和步骤事件等)
源路径的问题是VSCode需要访问源文件,其路径与在VM内运行的节点相同.即使您通过samba共享源,导致文件绝对路径在VM内部和外部之间也可能不同. VSCode预览的唯一解决方法是使路径相同,例如通过引入(符号)链接
我在我们这边创建了一个bug来改进源路径匹配.

Visual studio Code的Andre Weinand

@H_404_66@

大佬总结

以上是大佬教程为你收集整理的node.js – 使用Visual Studio Code调试VM上托管的节点应用程序全部内容,希望文章能够帮你解决node.js – 使用Visual Studio Code调试VM上托管的节点应用程序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。