Как я могу перезапустить узел-инспектор при перезапуске узла?
Я часто использую нод-инспектор. Когда я редактирую свой код и перезагружаюсь, я получаю неизбежное
Отдельно от цели
Ошибка при запуске нового процесса. Я всегда должен найти инспектор узла вкладки и перезапустить его.
Мне было интересно, смогу ли я избежать этого. Например, отправьте сообщение узлу-инспектору с узла, чтобы сказать вкладке браузеров, на которой запущен узел-инспектор, перезапустить.
4 ответа
Немного кросс-постинга от этого SO, с обновлением к этой теме.
В стандартной панели разработчика Chrome (58) есть ссылка, которая открывает новое окно "без головы", которое волшебным образом подключается к проверке узла, независимо от того, как приложение перестраивается / перезапускается.
Я использую Express.js, например DEBUG=myapp:* supervisor -- --inspect bin/www &
и было трудно восстановить соединение, используя обычный загруженный guid URL, который постоянно меняется. Но этот инструмент Chrome работает весь день, надежно подключаясь.
Под Threads > Main вы должны увидеть "Доступен экземпляр узла. Connect".
Я считаю, что новое окно менее пригодно для использования, так как я предпочел бы вкладку, но автоматическое переподключение настолько надежно, что я буду жить с этим!
Единственный недостаток, который я обнаружил, - когда он подключается заново, он очищает все точки останова.
Вам не нужно перезапускать сам процесс Node Inspector, когда отлаженный процесс был перезапущен. Все, что вам нужно сделать, это перезагрузить вкладку браузера с Node Inspector GUI.
Боюсь, что в данный момент не существует простого способа автоматической перезагрузки страницы графического интерфейса Node Inspector при перезапуске отлаженного процесса. Возможно, можно выполнить какой-то активный опрос в бэкэнде Node Inspector, но это функция, которая должна быть кем-то реализована.
В зависимости от того, какую часть вашего приложения вы отлаживаете, может оказаться полезной функция "Live Edit". Это позволяет вам редактировать ваш код из Node Inspector, сохранять изменения во время выполнения Node/V8 и, возможно, обратно на диск. Таким образом, вам не нужно перезапускать отлаженный процесс после внесения изменений.
Эта функция была реализована в Node Inspector и выпущена в v0.7.0. Смотрите проблему № 266 для более подробной информации.
Эта функция была реализована в Node Inspector и выпущена в v0.7.0. Смотрите проблему № 266 для более подробной информации.
Предыдущий ответ вот обходной путь:
Я написал простой js-скрипт для исполнения greasemonkey/tampermonkey.
Скрипт ищет сообщение "Отделено от цели" на вкладке с адресом http://127.0.0.1:8080/debug?port=5858
, Как только сообщение становится видимым, страница перезагружается, пока не исчезнет.
Это решение является обходным путем. Это не должно считаться идеальным решением (я согласен с Мирославом), вот что:
// ==UserScript==
// @name Reload node-inspector tab
// @version 0.1
// @description looks for the detached message and auto reload the page
// @match http://127.0.0.1:8080/debug?port=5858
// ==/UserScript==
var exec = function(){
setTimeout(function(){
var el = document.getElementsByClassName("help-window-title")[0];
if(el && el.innerHTML == "Detached from the target"){
location.reload();
} else {
setTimeout(function(){ exec(); }, 1000);
}
}, 1000);
};
exec();
Шаг 1. не использоватьnode-inspector
- новая работа отправлена командой chrome, которая не интегрируется с модулем node-Inspector. Двигаясь вперед, вы пропустите эти функции, если останетесь сnode-inspector
.
Шаг 2. Для запуска вашего скрипта используйте: nodemon --inspect-brk yourScript.js
- часть brk создает автоматическую точку останова на первой строке кода. Если у вас еще не установлен nodemon, вы сначала сделаете это, используя:npm install -g nodemon
.
Шаг 3. Затем откройте приложение Chrome, откройте инструменты разработчика Chrome (F12
или Ctrl+Shift+I
) и щелкните значок узла следующим образом:
Шаг 4. Внести изменения вyourScript.js
- chrome devtools автоматически перезагружает отладчик для каждого изменения, которое вы вносите в свой проект. Это связано с тем, что nodemon наблюдает за папкой проекта и сбрасывает процесс, который сбрасывает соединение отладчика.
Подробнее здесь: Отладка в 2017 году с помощью Node.js - я пишу это 29 августа 2019 года, но 2 года спустя все еще актуально.
Конечно, это легко. Первая установка npm install -g nodemon
Тогда вы можете запустить node-inspector & nodemon --debug app.js
(заменив app.js именем вашего скрипта)
Несмотря на синтаксическую ошибку, вам все равно может потребоваться перезагрузить вкладку node-inspector вручную