Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用Visual Studio的节点工具调试Gulp任务?_Node.js_Visual Studio 2015_Gulp_Ntvs - Fatal编程技术网

Node.js 如何使用Visual Studio的节点工具调试Gulp任务?

Node.js 如何使用Visual Studio的节点工具调试Gulp任务?,node.js,visual-studio-2015,gulp,ntvs,Node.js,Visual Studio 2015,Gulp,Ntvs,我最近安装了一款支持VS中节点环境的软件。值得注意的是,它能够从IDE设置调试断点 我不清楚在调试Gulp任务时是否可以设置断点。任务运行程序能够检测Gulp任务并将console.log语句输出到窗口,但我还没有找到更好的调试方法 我很久以前就发现了这篇文章:然而,这篇文章不涉及VS的NodeJS工具。所以,我想问一个问题,把这个插件考虑进去 你可以。右键单击节点项目,选择属性,然后按如下方式配置应用程序(在图中,默认值是您要运行的吞咽任务) 替代方法: 在终端和gulpfile所在的目录中

我最近安装了一款支持VS中节点环境的软件。值得注意的是,它能够从IDE设置调试断点

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

我很久以前就发现了这篇文章:然而,这篇文章不涉及VS的NodeJS工具。所以,我想问一个问题,把这个插件考虑进去


你可以。右键单击节点项目,选择属性,然后按如下方式配置应用程序(在图中,
默认值
是您要运行的吞咽任务)

替代方法:

  • 在终端和gulpfile所在的目录中,运行
    node--debug=44331--debug brk../node_modules/gulp/bin/gulp.js default
    。在我的例子中,
    default
    是我要运行/调试的任务名
  • 在Visual Studio中,转到
    Debug |附加到进程
    。选择
    Node.js Remote debugging
    作为传输,并在限定符中选择
    localhost:44331
    。按enter键,您将看到节点进程出现在列表中。单击
    附加
  • 瞧,断点被击中了

    有几件事需要注意:

    • 如果您遇到类似
      的情况,则无法附加到进程。错误0x80004005
      请使用其他端口。我无法让它与端口5858一起工作
    • 在您第一次附加到流程时,它可能无法工作(请参阅我之前的屏幕截图“我是如何被取消的”
      e
      ?)。再试一次

    您是否尝试过
    调试器?这适用于大多数基于javascript的浏览器,通过点击F12按钮使用chrome开发工具。你也可以在这里添加断点。我刚刚添加了断点,但没有用。问题在于预期的调试路线是构建/启动项目。Gulp任务只是项目的一个子集,并且独立于项目,因此我不确定是否支持调试它们。是的,我知道如何在Chrome开发工具中进行调试只是希望在VS支持调试节点的情况下,不必使用额外的工具在Chrome中运行Gulp任务。这就是我刚才提到的。我试图不使用节点检查器在Chrome中运行Gulp。@UtkarshDubey谢谢,但这是Visual Studio代码。这个问题是关于VisualStudio和NTV的常规版本的。谢谢,我成功地解决了这个问题。我希望能有比从终端一次调试一次更方便的方法,但我想这对于需要调试的几次已经足够了。等等,我刚刚意识到你可以。我会编辑这个答案我以前做过这个,但现在当我尝试附加到流程时,我总是会遇到一个被取消的错误。有什么想法吗?是的,当我尝试连接时仍然会遇到同样的错误。我的主要项目不是NodeJs,而是.NET4.5.1项目。但我使用Gulp来运行预构建任务,即获取和重新组织必要的JavaScript文件和CSS。那么,我在调试gulp任务并在断点处停止时运气不好吗?