Запустите приложение node.js в режиме отладки с супервизором. - PullRequest
17 голосов
/ 24 июня 2011

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

supervisor -w . app.js

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

node --debug app.coffee

Кто-нибудь есть идеи?

Ответы [ 5 ]

24 голосов
/ 24 апреля 2012

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

supervisor -- --debug app.js
supervisor -- --debug=7070 app.js
9 голосов
/ 20 сентября 2011

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

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

$ cd /usr/local/bin

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

#!/bin/bash
node --debug $@

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

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

Теперь вы можете запустить супервизор так:

$ supervisor -x node-debug script.js

P.S .: округлить:

su
echo '#!/bin/bash
node --debug $@' > /usr/local/bin/node-debug
chmod 777 /usr/local/bin/node-debug
3 голосов
/ 12 декабря 2012

С сайта CoffeeScript :

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

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

supervisor - --nodejs --debug app.coffee

Вы можете добавить другие аргументы, например:

руководитель -w.-n ошибка - --nodejs --debug app.coffee

3 голосов
/ 26 июня 2011

node-dev

node-dev на Github

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

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

Первый терминал (запустите узел в режиме отладки, отладка прослушивает порт 5858, узел-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

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

0 голосов
/ 24 июня 2011

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

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

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

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

...