Я пытаюсь собрать, загрузить и отладить расширение 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.
Как мне отладить это? Как заставить точки останова работать где угодно и отлаживать исходный код?