Azure功能:如何在WebStorm中调试?

时间:2017-01-17 02:19:23

标签: javascript node.js debugging webstorm azure-functions

azure-functions-cli offers a way to kickoff debugging,但这些说明似乎是特定于Visual Studio的。

我尝试通过在WebStorm中设置运行配置将JavaScript文件指向:

,使用类似的技巧来实现无服务器

\node_modules\azure-functions-cli\lib\main.js

然后传递Application args:

run myFunctionName --debug

使用Azure的工具成功运行这些功能,但WebStorm都尝试设置调试端口;当Azure窗口打开时,它会设置自己的调试端口。

来自Webstorm:

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进行调试?

2 个答案:

答案 0 :(得分:4)

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

安装该版本后,您可以使用良好的标准Node运行时启动。

  1. 来自Run的WebStorm - >编辑配置创建一个新的“Node.JS”。
  2. 为调试提供某种类型的名称。
  3. 将JavaScript文件设置为: 〜\应用程序数据\漫游\ NPM \ node_modules \天青函数核工具\ lib中\ main.js
  4. 注意:上面假设您在具有全局标志的Windows计算机上安装了Azure Functions。

    1. 将应用程序参数设置为:start --debug VSCODE
    2. enter image description here

      1. 在WebStorm中选择Run->调试: “What_You_Named_the_Remote_Profile”

      2. 添加一些断点。

      3. 导航到您的API终点,看看断点是否有效。

      4. 注意:默认情况下,该功能显示为http://localhost:7071/api/functionName

        -------------------编辑但下面是为了后人举行--------------

        好的,看起来你不能通过本地调试来做到这一点,但可以在WebStorm中使用“远程调试”。

        1. 来自Run的WebStorm - >编辑配置创建一个新的“Node.JS远程调试”。
        2. 为调试提供某种类型的名称。
        3. 点击+ Sign,然后点击“启动前:外部工具”并选择“运行外部工具”。
        4. 再次点击+ Sign并像屏幕截图一样填写(这假设您全局安装了Azure Function CLI)。 enter image description here
        5. 注意:上面的屏幕截图已根据最新版本的Azure Functions CLI /进行了更新。早期版本要求您声明应用程序名称,并且不需要--debug进行调试。因此,如果您未更新到最新版本的Azure Functions CLI(现在称为Azure-Functions-Core-Tools),则可能需要在“参数”字段中“运行MyApp”。

          1. 在WebStorm中选择Run->调试: “What_You_Named_the_Remote_Profile”

          2. 添加一些断点。

          3. 导航到您的API终点,看看断点是否有效。

          4. 注意:默认情况下,该功能显示为http://localhost:7071/api/functionName

答案 1 :(得分:3)

  1. 将此添加到您的local.setting.json文件中,其值如下:“ languageWorkers:node:arguments”:“ --inspect = 5858”
  2. 单击“编辑配置”。单击加号图标,然后选择Attachto Node.js / Chrome
  3. 为这些选项填写以下值:host:localhost-Port:5858并将Attac设置为“ Crhome或Nod.js>以--inpect开头的6.3”
  4. 启动功能并运行调试器

查看此图片:https://i.stack.imgur.com/hnC74.png