Как отладить расширение Chrome, которое состоит из кода JavaScript, преобразованного в набор операторов eval ()? - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь собрать, загрузить и отладить расширение Selenium IDE в Chrome. Я получил исходный код от https://github.com/SeleniumHQ/selenium-ide, затем запустил yarn build, и теперь у меня есть папка

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

, которая содержит манифест. json и все. js перечисленные файлы в манифесте. json расположены правильно по отношению к манифесту. json Это включает в себя фон. js file.

Так что, похоже, сборка прошла нормально. Я переключаю Chrome в режим разработчика, go на chrome: // extensions и нажимаю «загрузить распакованный», затем перехожу к папке «build». Расширение добавлено, но когда я нажимаю на его значок на панели инструментов, в консоли Chrome появляется сообщение об ошибке, в котором говорится, что он не может подключиться к серверу engine.io. Я хочу найти фрагмент кода, который пытается подключиться туда, поэтому я решаю, что делать дальше.

Проблема в оригинальном коде из репозитория, который выглядел как типичный JavaScript код, который не представлен в той же форме в папке "build". Вместо этого он представлен в виде набора eval() операторов в фоновом режиме. js file.

Исходный код будет содержать что-то вроде:

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

, и я ищу этот код, и я найдите эту строку в фоновом режиме. js Вместо этого ... Она начинается следующим образом ...

eval("__webpack_require__.r(__webpack_exports__);

и выглядит так, будто весь код помещается в одну строку и где-то в середине содержится

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

Даже если я поставлю точку останова на eval и go обратно на

chrome://extensions/?id=someVeryLongLineHere

и перезагрузлю страницу, тогда точка останова не будет достигнута. Конечно, я не могу ничего отладить.

Похоже, что я делаю что-то не так, потому что то, что я вижу, не соответствует типичному опыту отладки "hello world" в документации Chrome.

Как мне отладить это? Как заставить точки останова работать где угодно и отлаживать исходный код?

...