Как автоматически перезагрузить проект Node.js при использовании pm2
В настоящее время я программирую Node.js с помощью Express.js, и каждый раз, когда я меняю строку кода в файловом маршрутизаторе или приложении, мне нужно ввести команду:
pm2 reload id_project.
Как мне заставить pm2 автоматически перезагружать проект при изменении файла?
Ответы
Ответ 1
По умолчанию узел не обновляет наш сервер автоматически каждый раз, когда мы меняем файлы. Я не знаю о конкретном решении pm2, но вы можете сделать это с помощью nodemon. Просто установите с: npm install -g nodemon
и используйте с: nodemon server.js
.
Лично, похоже, ответ @rogier-spieker должен получить принятый ответ. (Я даже не могу удалить этот ответ, если он принят)
Ответ 2
Вам нужно начать свой проект pm2
с опцией --watch
:
pm2 start <script|name|id> --watch
Где <script|name|id>
относится к:
script
путь к сценарию, который вы хотите, чтобы pm2 обрабатывал
name
имя конфигурации в файле "экосистемы"
id
относится к уже запущенному приложению, использующему pm2, которое можно получить с помощью pm2 list
(обратите внимание, что для этого на самом деле потребуется restart
вместо start
, поэтому, вероятно, это наименее желательно из варианты)
Вы также можете указать, какие файлы/каталоги игнорировать:
pm2 start <script> --watch --ignore-watch "node_modules"
Смотреть & Перезапуск
Или создайте "экосистемный" файл json, описывающий, как вы хотите, чтобы pm2
относился к вашему проекту:
{
"name": "project_name",
"script": "index.js",
"watch": true,
"ignore_watch": ["node_modules"]
}
параметры JSON
Ответ 3
PM2 поставляется с удобным средством разработки, которое позволяет запускать приложение и перезапускать его при изменении файла:
# Start your application in development mode
# it print the logs and restart on file change too
# Two way of running your application :
pm2-dev start my-app.js
# or
pm2-dev my-app.js
Ответ 4
pm2 - менеджер процессов Node, в котором много наворотов. Вы можете запустить приведенную ниже команду для автоматического перезапуска приложения узла при обнаружении изменений файла в каталоге.
pm2 start index.js --watch
Обратите внимание: поскольку pm2 запускает все в фоновом режиме, вы не можете просто ctrl+c
выйти из запущенного процесса pm2. Вы должны остановить это, передав ID или имя.
pm2 stop 0
pm2 stop index
два других варианта ниже
npx supervisor index.js
nodemon index.js