Ответ 1
Вы запускаете свой сервер с nodemon --debug server.js
, а затем вам нужно запустить node -инспектор в отдельном окне терминала, если вы не нажмете nodemon на задний план.
В настоящее время я использую node вместе с nodemon. Затем я подумал, что иногда бывает полезно использовать инспектор с node, поэтому начали использовать node-inspector
Однако можно ли запустить оба одновременно?
Обычно для запуска nodemon я использовал бы:
nodemon server.js
//and similarly
node-debug server.js
Я также пробовал:
nodemon --debug http.js
Но, к сожалению, это тоже не сработало.
Но оба вместе!?
Вы запускаете свой сервер с nodemon --debug server.js
, а затем вам нужно запустить node -инспектор в отдельном окне терминала, если вы не нажмете nodemon на задний план.
Если вы хотите запускать их как одну команду, это работает для меня: node-inspector & nodemon --debug app.js
(заменив app.js на имя вашего script). Если все получится, вам придется вручную убить node -инспектор вручную, но выполнение этой команды дает вам возможность запускать rs
, чтобы перезапустить nodemon вручную, если это необходимо. НТН
Для тех, кто хочет независимое от ОС решение и без хаков для окон и т.д.
Вы можете использовать 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 для изменения файлов на лету.
Я не мог заставить nodemon хорошо играть с node-inspector. После одного изменения он перезапустится, но после этого не будет больше. Возможно, это потому, что я использую контейнеры докеров.
Самый простой способ перезагрузить приложение - позволить node -inpector сделать это (я знаю, что это не ответ на то, что оба они запускаются, но это сработало для меня).
Запустите приложение следующим образом:
node-inspector --save-live-edit & \
node --debug /app/server.js
Как я работаю в 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, если бы у вас была удобная.
Хакерное исправление для пользователей Windows, использующих оболочку bash:
Сначала добавить node -инспектор к вашему пути.
(Вы можете найти, где npm устанавливает пакеты с помощью npm list -g
)
Затем используйте эту команду в bash или добавьте ее в свои сценарии npm:
START /B node-inspector && nodemon --debug server.js
START /B
является командой windows для запуска в фоновом режиме.
Вы должны установить 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!!!