【问题标题】:Debug Chrome Extensions with Visual Studio Code使用 Visual Studio Code 调试 Chrome 扩展
【发布时间】:2017-02-03 13:58:51
【问题描述】:

有谁知道是否可以使用 Visual Studio Code 调试 Chrome 扩展程序?我读过的所有示例都涉及一个带有 url 的真实网页。

【问题讨论】:

  • github repo 介绍说所有目标都列在http://localhost:<port>/json 上。从问题页面来看,这是可能的,但仍然存在问题。
  • GabeMeister,你有没有找到这样做的方法。我也在寻找解决方案。

标签: javascript debugging google-chrome-extension visual-studio-code


【解决方案1】:

对于那些仍在寻找答案的人(像我一样,早先),我找到了真正的解决方案,这就是它。这假设您已经安装了Debugger for Chrome

您需要提供参数以在运行 Chrome 之前加载扩展程序,而不是像 Firefox 那样提供本机配置支持,特别是 load-extension 参数。

将此行添加到您的 Chrome 配置对象中,并带有启动请求,位于您的 .vscode/launch.json 文件中。这假定您的 manifest.json 文件直接位于工作区文件夹中。如果您的manifest.json 文件位于另一个文件夹中,请相应地更改${workspaceFolder}

{
    "runtimeArgs": ["--load-extension=${workspaceFolder}"]
}

例如,这就是我在工作区中的 launch.json 文件上执行此操作的方式。

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "chrome",
            "request": "launch",
            "name": "Launch Chrome",
            "url": "https://example.com/#this-could-be-anything",
            // Here it is!
            "runtimeArgs": ["--load-extension=${workspaceFolder}"]
        },
        { 
            // Firefox equivalent
            "type": "firefox",
            "request": "launch",
            "name": "Launch Firefox",
            "url": "https://example.com/#this-could-be-anything",
            "addonPath": "${workspaceFolder}"
        }
    ]
}

【讨论】:

  • 我如何添加brave browser 而不是chrome
  • @alexzander 这是关于 Chrome 扩展的。我不知道是否可以使用 Brave 执行此操作,因为它使用 Debugger for Chrome 扩展程序。
  • 好吧,brave 是建立在chromium 之上的,所以勇敢者基本上是 chrome,但老实说,我也不知道如何用勇敢者进行调试,这就是我问的原因。如果我们将vs代码中的默认浏览器路径修改为brave path,也许是可能的。我不知道这是否可能。
  • 如何添加有空格的自定义路径?例如Google 在其扩展路径的“用户数据”中有一个空格。 C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\...
  • 这似乎是一个愚蠢的问题,但是如果我正在调试本地 chrome 扩展并通过 localhost 调试,我应该在“url”属性下设置什么?
【解决方案2】:

很遗憾,目前只能使用 Chrome DevTool 调试 Google Chrome 扩展程序。 ... -> 更多工具 -> 扩展 -> 你的扩展 -> Inspect views background page

关于vscode-chrome-debug

支持的功能

  • 设置断点,包括启用源映射时的源文件中
  • 步进,包括使用 Chrome 页面上的按钮
  • 本地人面板
  • 调试评估脚本、脚本标签和动态添加的脚本
  • 手表
  • 控制台

不支持的场景

  • 调试网络工作者
  • 调试 Chrome 扩展程序
  • 任何不是脚本调试的功能

【讨论】:

    【解决方案3】:

    您可以使用attach 选项调试在网页上运行的扩展代码。

    {
        "type": "chrome",
        "request": "attach",
        "name": "Chrome Extension debugging",
        "port": 9222,
        "url": "<URL>",
        "webRoot": "${workspaceFolder}/extension"
    }
    

    记得在调试模式下启动 Chrome 之前关闭所有打开的 Chrome 实例:

    .\chrome.exe --remote-debugging-port=9222
    

    更多信息可以在这里找到:vscode-chrome-debug on GitHub

    【讨论】:

    • 我认为这不能回答问题。
    • 是的,这回答了我能够像这样调试它的问题。我正在添加其他信息。
    • ...只需确保您已在浏览器上部署了扩展程序。
    • ... 并在您需要调试新更改时从 chrome 中的扩展配置重新加载它。
    • ...确保您已在 chrome 浏览器中部署了扩展...部署的源代码和 vscode 中的源代码必须相同,才能使调试断点匹配并位于正确的位置
    【解决方案4】:

    是的,它可以工作,可以调试扩展...

    使用Debugger for Chrome extension ..

    首先确保您已关闭所有 chrome 窗口... 并配置一个“附加”调试选项,如下所示...

      {
         "type": "chrome",
         "request": "attach",
         "name": "Attach to Chrome",
         "port": 9222,
         "webRoot": "${workspaceFolder}/src", <-- path to the root of the extension
         "url": "https://calendar.google.com/calendar/r" <-- Replace with the url (public or private) on which you want to debug your extension ...
          // IMPORTANT this url must exactly match the one in the address bar of the browser ..
      }
    

    然后使用以下命令打开chrome:

    google-chrome --remote-debugging-port=9222
    

    ...然后导航到您要调试扩展程序的 url ...

    ...最后,只有这样...在 vscode 上开始您的调试会话...

    【讨论】:

    • 这允许您调试“calendar.google.com/calendar/r”,而不是您正在测试的扩展。如果您想调试扩展程序的“背景页面”怎么办?
    • 是的,它允许您调试扩展,并且您需要在某个 url 处测试扩展,以便您可以根据说明在配置中设置的 url 处调试扩展。 ..我更新了描述以使其更清晰。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-09
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2021-11-22
    相关资源
    最近更新 更多