Запустить приложение node.js в отладке с помощью диспетчера

17

Я использую диспетчер для автоматической перезагрузки моего node.js, например.

supervisor -w . app.js

Однако я не могу понять, как заставить диспетчера запускать процесс node.js при отладке, например. эквивалентно

node --debug app.coffee

У кого-нибудь есть идеи?

    
задан James Hollingworth 24.06.2011 в 14:49
источник
  • Нарушение связи надзорника. На веб-странице отображается «Posterous Spaces is no longer available» –  Ramon Araujo 29.06.2015 в 06:53

5 ответов

9

Это решение будет работать для * nix:

Перейдите в /usr/local/bin или любой другой каталог в $ PATH

$ cd /usr/local/bin

Создайте исполняемый скрипт (скажем, node-debug) со следующим содержимым

#!/bin/bash
node --debug [email protected]

Чтобы сделать его выполнимым:

$ sudo chmod 777 /usr/local/bin/node-debug

Теперь вы можете запустить супервизор следующим образом:

$ supervisor -x node-debug script.js

P.S .: Чтобы округлить его:

su
echo '#!/bin/bash
node --debug [email protected]' > /usr/local/bin/node-debug
chmod 777 /usr/local/bin/node-debug
    
ответ дан TEHEK 20.09.2011 в 10:34
источник
  • Таким образом, я получаю отладчик, прослушивающий порт 5858 Не удалось открыть сокет на порту 5858, ожидая 1000 мс перед повторной попыткой, в то время как ручной узел --debug работает нормально. –  Redsandro 03.07.2014 в 12:51
24

Это также работает (и вам не нужен отдельный сценарий bash):

supervisor -- --debug app.js
supervisor -- --debug=7070 app.js
    
ответ дан Jesper 24.04.2012 в 12:28
источник
  • этот должен быть принятым ответом. Спасибо, что поделились. –  Daniele Brugnara 22.06.2014 в 13:56
  • Да, это работает так просто, а также с «продвинутым» инспектором, например. для запуска Express: DEBUG = myapp: * supervisor - - inspect bin / www. Я получил ошибки-события, пытающиеся использовать параметр -x, но этот альтернативный формат параметров работает. –  scipilot 03.06.2017 в 10:02
3

На сайте CoffeeScript :

  

- nodejs У исполняемого файла узла есть некоторые полезные параметры, которые вы можете установить, например   --debug, --debug-brk и -max-stack-size. Используйте этот флаг для прямого перенаправления опций в Node.js.

Я пробовал это, и он работал:

supervisor - --nodejs --debug app.coffee

Вы можете добавить другие аргументы следующим образом:

supervisor -w. -n ошибка - --nodejs --debug app.coffee

    
ответ дан user1896226 12.12.2012 в 00:46
источник
3

узел-dev

узел-dev на Github

  

«Все аргументы передаются дочернему процессу. node-dev --debug server.js будет отлаживать ваше приложение, а не сам супервайзер».

Создайте сценарий node.js "test.js" в $ HOME / nodetest

Первый терминал (узел запуска в режиме отладки, debug будет прослушивать порт 5858, node-dev будет перезагружать измененные файлы):

    cd $HOME/nodetest
    npm install node-dev
    node_modules/.bin/node-dev --debug test.js

Второй терминал (запустите веб-инспектор для браузера на основе WebKit, инспектор подключается к порту 5858 отладчика и слушает порт 8080):

    cd $HOME/nodetest
    npm install node-inspector
    node_modules/.bin/node-inspector

Откройте этот URL-адрес в браузере на основе WebKit (Chrome, Safari и т. д.):

    http://0.0.0.0:8080/debug?port=5858

Нажмите «Сценарии» и установите контрольные точки в своем коде.

    
ответ дан devhd 26.06.2011 в 17:30
источник
0

Используйте флаг -x , как описано на странице node-supervisor github

supervisor -w . -x 'node --debug' app.js

, но это не будет работать с coffeescript, поэтому вы должны использовать

supervisor -w . -x 'coffee --debug' app.js     

ответ дан Raynos 24.06.2011 в 15:44
источник
  • пробовал это, но он переходит в бесконечный цикл с DEBUG: запуск дочернего процесса с помощью «coffee -debug app.coffee» DEBUG: execvp (): нет такого файла или каталога –  James Hollingworth 24.06.2011 в 16:28
  • @JamesHollingworth Я думаю, что было слишком много, чтобы ожидать, что кофе - дебюг будет просто работать: P –  Raynos 24.06.2011 в 17:06