javascript - Azure 函数 : How to debug in WebStorm?

标签 javascript node.js debugging webstorm azure-functions

天蓝色函数-cli offers a way to kickoff debugging ,但这些说明似乎是 Visual Studio 特定的。

我尝试通过在 WebStorm 中设置运行配置以将 JavaScript 文件指向:
\node_modules\azure-functions-cli\lib\main.js
然后传递应用程序参数:
run myFunctionName --debug
这成功地使用 Azure 的工具运行了这些功能,但是 WebStorm 都尝试设置调试端口;当 Azure 窗口打开时,它会设置自己的调试端口。

来自网络 Storm :
C:\Program Files (x86)\JetBrains\WebStorm 2016.2.3\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" --debug-brk=60168 --expose_debug_as=v8debug C:\Users\username\AppData\Roaming\npm\node_modules\azure-functions-cli\lib\main.js run myfunction --debug Debugger listening on [::]:60168 System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException:
同样,Azure-cli 说它打开了一个调试端口,但它们不匹配。

因此,调用函数时会忽略设置的断点(尽管它确实运行成功)。

有人知道如何正确配置它以便能够使用 WebStorm 进行调试吗?

最佳答案

Azure-Functions-CLI 已重命名为 azure-functions-core-tools。如果您仍有 Azure-Functions-CLI,请参阅本文末尾的我的旧版回复。

如果您正在运行新的 azure-functions-core-tools,看起来它们破坏了运行远程调试器的能力:-(。

我打开了以下问题,如果他们告诉我,我会更新:
https://github.com/Azure/azure-functions-core-tools/issues/378

幸运的是,azure-functions-core 工具的新 Beta 版没有所有这些 C# 的疯狂,这会阻止它在其他操作系统上运行并且需要远程调试器。要安装该版本,您可以使用:

npm i -g azure-functions-core-tools@core

安装该版本后,您可以使用良好的“ol 标准 Node 运行时”启动内容。
  • 在 WebStorm 中从 Run -> Edit Configurations 创建一个新的“Node.JS”。
  • 给调试起一个名字。
  • 将 JavaScript 文件设置为:
    ~\AppData\Roaming\npm\node_modules\azure-functions-core-tools\lib\main.js

  • 注意:以上假设您在带有全局标志的 Windows 计算机上安装了 Azure Functions。
  • 将应用程序参数设置为: start --debug VSCODE

  • enter image description here
  • 编辑文件“.vscode\launch.json”并将 Node 的调试端口更改为 9229。
  • 在 WebStorm 中选择 Run-> Debug:"What_You_Named_the_Remote_Profile"
  • 添加一些断点。
  • 导航到您的 API 端点并查看断点是否有效。

  • 注意:默认情况下,该函数显示为 http://localhost:7071/api/functionName

    ------------------- 已编辑,但留待后人使用 --------------

    好的,看起来你不能通过本地调试来做到这一点,但可以在 WebStorm 中使用“远程调试”。
  • 在 WebStorm 中从 Run -> Edit Configurations 创建一个新的“Node.JS Remote Debug”。
  • 给调试起一个名字。
  • 点击 + 号,上面写着“启动前:外部工具”,然后选择“运行外部工具”。
  • 再次点击 + 号并像屏幕截图一样填写(假设您全局安装了 Azure Function CLI)。
    enter image description here

  • 注意:以上屏幕截图已根据最新版本的 Azure Functions CLI/进行了更新。早期版本要求您声明应用程序名称,并且不需要 --debug 进行调试。因此,如果您未更新到最新版本的 Azure Functions CLI(现在称为 Azure-Functions-Core-Tools),您可能需要在“参数”字段中设置“运行 MyApp”。
  • 在 WebStorm 中选择 Run-> Debug:"What_You_Named_the_Remote_Profile"
  • 添加一些断点。
  • 导航到您的 API 端点并查看断点是否有效。

  • 注意:默认情况下,该函数显示为 http://localhost:7071/api/functionName

    关于javascript - Azure 函数 : How to debug in WebStorm?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41688100/

    相关文章:

    javascript - Canvas - 从原型(prototype)中绘制图像

    node.js - 如何在不手动撤消 sequelize 迁移的情况下部署以前版本的 Node 服务器

    node.js - 在Sails.js中使用GET发出创建请求时,禁用创建功能

    google-chrome - 如何使用 Chrome 远程调试 CasperJS?

    java - 在 KDE 5 上运行idea 时调试 JavaFX 项目时鼠标不起作用

    javascript - 如何根据内容更改jQuery元素的多个实例中链接的href

    javascript - Flexbox 不隐藏或显示不流畅

    c++ - 在GDB中为c++文件设置断点时,它到底在哪里断点?

    javascript - 在哪里放置 ServiceWorker 片段 - 头部或 body ?

    node.js - 带有express的nodejs中的Tcp延迟ack