【问题标题】:How can I debug Gulp tasks using Node Tools for Visual Studio?如何使用 Node Tools for Visual Studio 调试 Gulp 任务?
【发布时间】:2023-08-04 23:08:01
【问题描述】:

我最近安装了NodeJS Tools for Visual Studio,它宣称支持 VS 中的 Node 环境。值得注意的是,它能够从 IDE 设置调试断点。

我不清楚调试 Gulp 任务时是否可以设置断点。 Task Runner 有能力检测 Gulp 任务并将console.log 语句输出到窗口,但我还没有找到更好的调试方法。

我不久前发现了这篇文章:How can I debug gulpfile.js when running it with Visual Studio Task Runner Explorer? 但是,这篇文章不涉及用于 VS 的 NodeJS 工具。所以,我重新提出这个问题以考虑该插件。

【问题讨论】:

  • 你试过debugger; 吗?这适用于大多数基于 javascript 并通过点击 F12 按钮使用 chrome 开发工具。你也可以在这里添加断点。
  • 我刚做了,但无济于事。问题是预期的调试路线是构建/启动项目。 Gulp 任务只是项目的一个子集,并且独立于它,所以我不确定是否支持调试它们。是的,我知道如何在 Chrome 开发工具中进行调试。 :) 只是希望当 VS 支持调试 Node 时,不必使用额外的工具在 Chrome 中运行 Gulp 任务。
  • 试试这个site
  • 对。这就是我刚才提到的。我正在尝试使用 Node Inspector 在 Chrome 中运行 Gulp。
  • @UtkarshDubey 谢谢,但那是 Visual Studio Code。这个问题是关于 Visual Studio 和 NTVS 的常规版本。

标签: node.js visual-studio-2015 gulp ntvs


【解决方案1】:

你可以。右键单击 Node 项目,选择 Properties,然后如下配置您的应用程序(在图像中,default 是您要运行的 Gulp 任务)。

替代方法:

  1. 在终端和 gulpfile 所在的目录中,运行node --debug=44331 --debug-brk ../node_modules/gulp/bin/gulp.js default。就我而言,default 是我要运行/调试的任务名称。
  2. 在 Visual Studio 中,转到 Debug | Attach to Process。选择 Node.js Remote debugging 作为 Transport,并在限定符中选择 localhost:44331。按 Enter 键,您应该会看到 Node 进程出现在列表中。点击Attach

瞧,断点被命中了。

有几点需要注意:

  • 如果您得到类似Unable to attach to process. Error 0x80004005 的信息,请使用不同的端口。我无法让它与端口 5858 一起工作。
  • 第一次附加到进程时它可能不起作用(请参阅我之前的屏幕截图,我是如何获得ECANCELED?)。再试一次。

【讨论】:

  • 谢谢,我得到了这个工作。我希望有比从终端触发一次运行调试更方便的东西,但我想这对于需要调试的几次来说已经足够了。
  • 等等,我刚刚意识到你可以。我会编辑这个答案
  • 我以前可以正常工作,但现在当我尝试附加到进程时,总是会收到 ECANCELED 错误。有什么想法吗?
  • 是的,当我尝试连接时仍然总是遇到同样的错误。
  • 我的主要项目不是 NodeJs,它是 .NET 4.5.1 项目。但我正在使用 Gulp 来运行预构建任务,以获取和重新组织必要的 JavaScript 文件和 CSS。那么,我在调试 gulp 任务并在断点处停止时不走运吗?