Ответы:
Модуль forever имеет концепцию нескольких серверов node.js и может запускать, перезапускать, останавливать и выводить список работающих серверов. Он также может следить за изменением файлов и при необходимости перезапускать узел.
Установите его, если у вас его еще нет:
npm install forever -g
После установки вызовите foreverкоманду: используйте -wфлаг, чтобы посмотреть файл на наличие изменений:
forever -w ./my-script.js
Кроме того, вы можете смотреть каталог и игнорировать шаблоны:
forever --watch --watchDirectory ./path/to/dir --watchIgnore *.log ./start/file
forever -c babel-node -w --watchDirectory ./server ./server/index.js но, к сожалению, кажется, что он посылает навсегда в штопор, и он слишком часто перезагружает сервер, что приводит к ошибкам уже используемого порта ... добавить паузу после перезагрузки?
-tили, killTreeкоторая требовалась, я думаю, что babel-узел был убит, но не сервер Express, который он породил.
Хорошим вариантом является Node-supervisor, а Node.js Restart on File Change - хорошая статья о том, как его использовать, обычно:
npm install supervisor -g
и после миграции в корень вашего приложения используйте следующее
supervisor app.js
server.jsпотому что он постоянно перезапускался, это было связано с тем, что мой сервер собирал клиента при загрузке и, таким образом, изменял файлы. supervisor --watch server.js server.jsрешил это.
Вы должны посмотреть на что-то вроде nodemon .
Nodemon будет следить за файлами в каталоге, в котором был запущен nodemon, и если они изменятся, он автоматически перезапустит приложение вашего узла.
Пример:
nodemon ./server.js localhost 8080
или просто
nodemon server
Для упрощения этой задачи доступны различные пакеты NPM.
Для разработки
Для производства (с расширенными функциями, такими как кластеризация, удаленное развертывание и т. Д.)
npm install -g pm2npm install -g strongloopСравнение между Forever, pm2 и StrongLoop можно найти на веб -сайте StrongLoop .
Вы также можете попробовать nodemon
Установить Nodemon
npm install -g nodemon
Использовать Nodemon
Обычно мы запускаем программу узла, как:
node server.js
Но здесь вы должны сделать, как:
nodemon server.js
Узел-DEV
node-dev - отличная альтернатива как nodemon, так и супервизору для разработчиков, которым нравится получать уведомления рычания (или libnotify) на своем рабочем столе при каждом перезапуске сервера или при возникновении ошибки или изменения в файле.
Монтаж:
npm install -g node-dev
Используйте node-dev вместо node:
node-dev app.js
Уведомление об изменении файла для автоматического запуска сервера
утешить положить
run, и как он по сравнению с существующими альтернативами. Простой сброс другого варианта только способствует парадоксу выбора. (К счастью run, не обновлялся с 2015 года, так что теперь это не
Следуйте шагам:
npm install --save-dev nodemon
Добавьте следующие две строки в раздел «script» файла package.json:
"start": "node ./bin/www",
"devstart": "nodemon ./bin/www"
как показано ниже:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node ./bin/www",
"devstart": "nodemon ./bin/www"
}
npm run devstarthttps://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/skeleton_website