Есть ли аргумент командной строки или переменная среды, которая отключает функцию "break on first line" отладчика node?
Как отключить отладчик node "перерыв в первой строке"
Ответ 1
По этот вопрос Я открыл в node repo, в настоящее время это невозможно. Это также то, что ребята node не видят в качестве функции, которая стоит реализовать ", потому что это кажется бессмысленным. [...] Привязка к запущенному процессу делает именно то же самое. См. Остальную часть обсуждения в упомянутой проблеме.
Если вы считаете, что хотите такую функцию, проголосуйте за это, оставьте комментарий в проблеме Github и, если нет ответа, откройте новый и разместите его здесь.
Ответ 2
В node существуют две концепции отладчика: отладчик V8 (с его протоколом на основе TCP) и отладчик командной строки node (CLI).
При запуске node debug app.js
в главном процессе node запускается CLI отладчика, а для отлаживаемого script (node --debug-brk app.js
) порождается новый дочерний процесс node. Опция --debug
или --debug-brk
используется для включения отладчика V8 в дочернем процессе.
Разница между --debug
и --debug-brk
заключается в том, что последняя добавляет точку останова в первую строку, так что выполнение немедленно останавливается там.
Я предлагаю вам это решение:
-
Когда вы создаете дочерний процесс со своего веб-сервера, запустите
node --debug
вместоnode debug
. Таким образом, создается только один дочерний процесс, он запускает ваше приложение и не приостанавливается в первой строке. -
Теперь вы можете использовать любой инструмент отладки, поддерживающий протокол отладки V8 - встроенный отладчик CLI node, node-inspector, или вы можете, если хотите, реализовать собственный собственный интерфейс отладчика (GUI). (Я полагаю, это то, чего вы пытаетесь добиться, запустив отладчик CLI в фоновом режиме?)
Если вы решили использовать встроенный CLI, просто введите еще один дочерний процесс и сообщите node отладчику CLI для подключения к процессу, запущенному на шаге 1:
node debug localhost:5858
и продолжайте, как раньше.
Ответ 3
Нашел это, ища сам ответ - Кажется, вы можете просто запустить
node-debug --debug-brk=0 (progname)
Надеюсь, это поможет кому-то.
Ответ 4
Записать расширение chrome, чтобы нажать кнопку запуска
1. Выполнить оболочку
mkdir run_as_devtools
cd run_as_devtools
touch manifest.json
touch run_as_devtools.js
2. Отредактируйте файлы
run_as_devtools.js:
if (location.protocol === 'chrome-devtools:' && location.href.match(/ws=localhost/))(function () {
'use strict';
setTimeout(function () {
try {
document.querySelector('html /deep/ .long-click-glyph').click();
} catch (e) {
console.log(e);
}
}, 500);
})();
manifest.json: (он использует ключ хромовокса, поэтому не используйте его с chromevox)
{
"content_scripts": [{
"js": [ "run_as_devtools.js" ],
"matches": [ "<all_urls>" ]
}],
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEGBi/oD7Yl/Y16w3+gee/95/EUpRZ2U6c+8orV5ei+3CRsBsoXI/DPGBauZ3rWQ47aQnfoG00sXigFdJA2NhNK9OgmRA2evnsRRbjYm2BG1twpaLsgQPPus3PyczbDCvhFu8k24wzFyEtxLrfxAGBseBPb9QrCz7B4k2QgxD/CwIDAQAB",
"manifest_version": 2,
"name": "Elevated Devtools extension",
"version": "1.0"
}
3. Установите расширение
Настройки Chrome - Дополнительные инструменты - Расширения - Режим разработчика - Загрузка распакованного расширения - выберите папку run_as_devtools
P.S. Лучше использовать его с диспетчером Node fooobar.com/questions/133402/...
Ссылка: fooobar.com/questions/43251/...
Ответ 5
Я решил такую же проблему, просто переключившись с node v6 на v7
Ответ 6
Как и идея blackmiaool, но проще, с node v8 вы можете запустить script с помощью --inspect. Если в нем есть следующий код, когда вы открываете окно отладки в Chrome devtools, он доставит вас прямо в точку отладчика. Кроме того, это позволяет вам выполнить асинхронный код, нажав кнопку "продолжить", которая позволяет вашему коду запускаться, прежде чем возвращать вам ответ:
// app_shell.js
var UserModel = require("./some_user_model");
function looper() {
var Tmp = { UserModel: UserModel };
debugger;
setTimeout(looper, 100);
}
looper();
И в оболочке script вы можете сделать что-то вроде:
echo "Click the 'Open dedicated DevTools for Node' link"
python -mwebbrowser about:inspect
node --inspect app_shell.js