Подтвердить что ты не робот

Запуск node -инспектора рядом с nodemon?

В настоящее время я использую node вместе с nodemon. Затем я подумал, что иногда бывает полезно использовать инспектор с node, поэтому начали использовать node-inspector

Однако можно ли запустить оба одновременно?

Обычно для запуска nodemon я использовал бы:

nodemon server.js
//and similarly 
node-debug server.js

Я также пробовал:

nodemon --debug http.js

Но, к сожалению, это тоже не сработало.

Но оба вместе!?

4b9b3361

Ответ 1

Вы запускаете свой сервер с nodemon --debug server.js, а затем вам нужно запустить node -инспектор в отдельном окне терминала, если вы не нажмете nodemon на задний план.

Ответ 2

Если вы хотите запускать их как одну команду, это работает для меня: node-inspector & nodemon --debug app.js (заменив app.js на имя вашего script). Если все получится, вам придется вручную убить node -инспектор вручную, но выполнение этой команды дает вам возможность запускать rs, чтобы перезапустить nodemon вручную, если это необходимо. НТН

Ответ 3

Для тех, кто хочет независимое от ОС решение и без хаков для окон и т.д.

Вы можете использовать npm-run-all, который является средством CLI, которое позволяет запускать несколько npm-скриптов параллельно или последовательно. Таким образом, вы установили бы свой пакет package.json так:

"scripts": {
  "start": "npm-run-all --parallel lint start:debug start:server",
  "lint": "eslint . --ext .js",
  "start:debug": "node-debug server.js",
  "start:server": "nodemon server.js"
}

И затем из CLI вы выполните: npm start

Предостережение: из-за моего опыта работы с nodemon и node -debug вместе приводит к странным node поведением-инспектор иногда. Поэтому с тех пор я решил удалить nodemon из своих сценариев при отладке и полагаться на node -инспекторы save-live-edit для изменения файлов на лету.

Ответ 4

Я не мог заставить nodemon хорошо играть с node-inspector. После одного изменения он перезапустится, но после этого не будет больше. Возможно, это потому, что я использую контейнеры докеров.

Самый простой способ перезагрузить приложение - позволить node -inpector сделать это (я знаю, что это не ответ на то, что оба они запускаются, но это сработало для меня).

Запустите приложение следующим образом:

node-inspector --save-live-edit & \
node --debug /app/server.js

Ответ 5

Как я работаю в Linux, я написал bash script на основе rpaskett answer, так что вам не нужно запоминать эту неудобную команду каждый раз.

Однако я заметил, что в комментарии вы используете Windows. Вот некоторые варианты, которые у вас есть:

Вы можете преобразовать пакет bash script в Windows и сохранить его как C:\Windows\System32\node-DEV.bat. Я сделал это, и он работает на моем ПК с ОС Windows:

@echo off
echo Starting DEV environment for %1
start node-inspector
nodemon --debug %1

Затем вы сможете запустить node-DEV server.js.

Другой вариант; вы можете запустить что-то вроде nodedev, которое было написано в Node.js, поэтому независимо от платформы, хотя похоже, что он не был обновляется через некоторое время.

Или вы могли бы даже запустить bash script в среде Cygwin, если бы у вас была удобная.

Ответ 6

Хакерное исправление для пользователей Windows, использующих оболочку bash:

Сначала добавить node -инспектор к вашему пути. (Вы можете найти, где npm устанавливает пакеты с помощью npm list -g)

Затем используйте эту команду в bash или добавьте ее в свои сценарии npm:

START /B node-inspector && nodemon --debug server.js

START /B является командой windows для запуска в фоновом режиме.

Ответ 7

Вы должны установить node -инспектор и nodemon, используя:

npm install -g nodemon
npm install -g node-inspector

Чтобы запустить в Windows, создайте новый .bat файл и добавьте следующие строки:

@echo off
echo Starting developer enviroment of the file %1
start nodemon --debug-brk %1
node-debug %1

И запустите:

node_desarrollo.bat "имя файла для run.js"

Если пробег с ошибкой:

Error: listen EADDRINUSE :::5858
    at Object.exports._errnoException (util.js:855:11)
    at exports._exceptionWithHostPort (util.js:878:20)
    at Agent.Server._listen2 (net.js:1237:14)
    at listen (net.js:1273:10)
    at Agent.Server.listen (net.js:1369:5)
    at Object.start (_debug_agent.js:21:9)
    at startup (node.js:72:9)
    at node.js:980:3

Это нормально, потому что для node -инспектора нужно открыть этот порт для подключения, но поскольку открыт nodemon --debug-brk %1 порт 5858, его нельзя открыть и показать ошибку EADDRINUSE :::5858, обратите внимание, что флаг --debug-brk nodemon необходимо сделать точку останова на первой строке. Попробуйте изменить файл .js после запуска .bat и посмотреть изменения, отраженные в отладчике. Этот отладчик перезагружается и показывает изменения, сделанные в файле .js. Счастливое кодирование JS!!!