代码之家  ›  专栏  ›  技术社区  ›  sharptooth

如何调试Chrome扩展,该扩展由JavaScript代码转换成一堆eval()语句组成?

  •  0
  • sharptooth  · 技术社区  · 6 年前

    我试图在Chrome中构建、加载和调试Selenium IDE扩展。我从 https://github.com/SeleniumHQ/selenium-ide yarn build 现在我有一个文件夹

    <repo-root>\\packages\\side-recorder\\build
    

    其中包含manifest.json和manifest.json中列出的所有.js文件都与manifest.json(其中包括background.js文件)相对应。

    看来build没问题。我将Chrome切换到开发模式,转到Chrome://extensions并单击“loadunpacted”,然后导航到“build”文件夹。扩展已经添加,但是当我单击它的工具栏图标时,Chrome控制台中有一条错误消息,说它无法连接到engine.io服务器。我想找到一段代码,试图连接到那里,所以我决定下一步做什么。

    问题是来自repo的原始代码看起来像是典型的JavaScript代码在“build”文件夹中不以相同的形式出现。而是作为一堆 eval()

    原始代码将包含如下内容:

    this.attachRecorderRequestHandler = this.attachRecorderRequestHandler.bind(
      this
    )
    

    我搜索了这段代码,在background.js中找到了这一行。。。开始是这样的。。。

    eval("__webpack_require__.r(__webpack_exports__);
    

    this.attachRecorderRequestHandler=this.attachRecorderRequestHandler.bind(this);}
    

    即使我在 eval

    chrome://extensions/?id=someVeryLongLineHere
    

    然后重新加载页面,则不会命中断点。我肯定什么都调试不了。

    看起来我做错了什么,因为我看到的与Chrome文档中典型的“hello world”调试体验不匹配。

    0 回复  |  直到 6 年前