2015-01-11 15 views
17

Tôi đang chạy PM2 với điều này:Express 4 + PM2 watch không làm việc

pm2 start bin/www --watch ../ 

Vấn đề là khi tôi cập nhật app.js trong thư mục gốc, nó dường như không được autorestarting nút. Bất kỳ ý tưởng?

+0

Tôi đã cố gắng để con số này ra bản thân mình. Suy nghĩ của tôi là nó có thể đang sử dụng thư mục xem tương đối so với thư mục thực thi, đó là thư mục gốc của dự án, vì vậy khi bạn chỉ định '--watch ../', bạn đang chỉ định thư mục * ở trên * bạn thực sự muốn xem. Tôi đã không thử nó bản thân mình, kể từ khi tôi đang sử dụng 'pm2' trên một máy chủ sản xuất, vì vậy tôi kết thúc' ssh'ing trong, 'git pull'ing mã mới nhất, và sau đó chạy' pm2 restart www' bằng tay, không liên quan đến vấn đề của bạn. –

+1

@BrandonAnzaldi: Đã khám phá một giải pháp. Được đăng dưới dạng câu trả lời bên dưới. – ninjaneer

Trả lời

35

đặn ra một giải pháp:

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

Đặt rằng trên thư mục gốc của dự án của bạn, sau đó chạy PM2 của bạn như vậy:

pm2 start processes.json 
+0

Nên "xem" là một giá trị boolean? cho phép tính năng xem, mặc định là "sai". nếu đúng, nó sẽ khởi động lại ứng dụng của bạn mỗi khi một thay đổi tập tin được phát hiện trên thư mục hoặc thư mục con của ứng dụng của bạn – spikeyang

+1

Làm điều đó sẽ xem toàn bộ thư mục Express express. Điều đó có nghĩa là nếu bạn sử dụng một cái gì đó như Webstorm duy trì một thư mục .idea, pm2 của bạn sẽ khởi động lại máy chủ của bạn mỗi khi Webstorm sẽ viết trong thư mục này. Điều tương tự nếu bạn sửa đổi một cái gì đó trong thư mục công cộng ... Thay vì đó, tôi đề xuất trực tiếp thêm thư mục mà bạn muốn xem và app.js của bạn "watch": ['core', 'other-folder', 'app .js '] ' – user1853777

+0

@ user1853777: nó có thể tốt hơn để làm' "ignore_watch": [".idea"] 'nếu bạn biết chính xác những gì sẽ được làm mới liên tục. – ninjaneer

Các vấn đề liên quan