2015-01-11 4 views
17

Я бег PM2 с этим:Express 4 + пм2 часов не работают

pm2 start bin/www --watch ../ 

Проблема заключается в том, что, когда я обновляю app.js в корневой папке, не кажется, что это будет autorestarting узла. Есть идеи?

+0

Я пытался выяснить это сам. Я думал, что он может использовать каталог часов относительно каталога выполнения, который является корневым каталогом проекта, поэтому, когда вы указываете '--watch ../', вы фактически указываете папку * выше *, где вы действительно хотите посмотреть. Я не пробовал это сам, так как я использую 'pm2' на производственном сервере, поэтому я заканчиваю' ssh'ing in, 'git pull', используя последний код, а затем запускаю' pm2 restart www' вручную, которая не относится к вашей проблеме. –

+1

@BrandonAnzaldi: обнаружено решение. Добавлено как ответ ниже. – ninjaneer

ответ

35

Разобрался решение:

//processes.json: 
    { 
     "apps" : [{ 
     "name"  : "someExpress4App", 
     "script"  : "bin/www", 
     "watch"  : "../", 
     "log_date_format" : "YYYY-MM-DD HH:mm Z", 
     }] 
    } 

Положи на корень вашего проекта, а затем запустить PM2, как так:

pm2 start processes.json 
+0

Должно ли «смотреть» быть логическим значением? включает функцию часов, по умолчанию «false». если это правда, оно будет перезапускать ваше приложение каждый раз, когда будет обнаружено изменение файла в папке или подпапке вашего приложения. – spikeyang

+1

Выполнение этого будет наблюдать за всей родительской директорией Express. Это означает, что если вы используете что-то вроде Webstorm, который поддерживает каталог .idea, ваш pm2 будет перезапускать ваш сервер каждый раз, когда Webstorm будет писать в этом каталоге. То же самое, если вы модифицируете что-то в папке public ... Вместо этого я предлагаю напрямую добавить каталог, который вы хотите посмотреть, и ваш app.js '' watch ': [' core ',' other-folder ',' app .js '] ' – user1853777

+0

@ user1853777: возможно, лучше сделать' "ignore_watch": [".idea"] ', если вы точно знаете, что будет постоянно обновляться. – ninjaneer