2011-06-24 31 views
17

Tôi đang sử dụng supervisor để tự động tải lại nút node.js của mình, ví dụ:Chạy ứng dụng node.js khi gỡ lỗi với người giám sát

supervisor -w . app.js 

Tuy nhiên, tôi không thể tìm cách giám sát để chạy quá trình node.js trong gỡ lỗi, ví dụ: tương đương với

node --debug app.coffee 

Có ai có ý tưởng nào không?

+1

Liên kết giám sát bị hỏng. Trang web hiển thị "Không gian áp phích không còn khả dụng" –

Trả lời

9

Giải pháp này sẽ làm việc cho * nix:

Đến /usr/local/bin hoặc bất kỳ thư mục khác trong $ PATH của bạn

$ cd /usr/local/bin 

Tạo một kịch bản thực thi (ví dụ, nút-debug) với các nội dung sau

#!/bin/bash 
node --debug [email protected] 

Để làm cho nó thực thi:

$ sudo chmod 777 /usr/local/bin/node-debug 

Bây giờ bạn có thể chạy giám sát như thế này:

$ supervisor -x node-debug script.js 

T.B.: Để làm tròn nó lên:

su 
echo '#!/bin/bash 
node --debug [email protected]' > /usr/local/bin/node-debug 
chmod 777 /usr/local/bin/node-debug 
+0

Bằng cách này tôi nhận được' trình gỡ lỗi nghe trên cổng 5858 Không mở được ổ cắm trên cổng 5858, chờ 1000 ms trước khi thử lại trong khi nút thủ công ' --debug' hoạt động tốt. – Redsandro

0

Sử dụng -x cờ như được nêu trên node-supervisor github page

supervisor -w . -x 'node --debug' app.js

nhưng điều đó sẽ không làm việc với coffeescript vì vậy bạn phải sử dụng

supervisor -w . -x 'coffee --debug' app.js

+3

đã cố gắng nhưng nó đi vào vòng lặp vô hạn với DEBUG: Bắt đầu quy trình con bằng 'coffee --debug app.coffee' DEBUG: execvp(): Không có tệp hoặc thư mục nào –

+0

@JamesHollingworth Tôi nghĩ rằng nó quá nhiều để mong đợi 'cà phê --debug' chỉ hoạt động: P – Raynos

3

node-dev

node-dev on Github

"Tất cả các đối số được chuyển sang quy trình con. nút-dev --debug server.js sẽ gỡ lỗi ứng dụng của bạn, không phải là người giám sát riêng của mình."

Tạo một "test.js" Node.js kịch bản trong $ HOME/nodetest

terminal đầu tiên (chạy nút trong chế độ debug, debug sẽ lắng nghe trên cổng 5858, node-dev sẽ được tải lại tập tin thay đổi):

cd $HOME/nodetest 
    npm install node-dev 
    node_modules/.bin/node-dev --debug test.js 

terminal thứ hai (bắt đầu thanh tra trên web cho một trình duyệt WebKit dựa, thanh tra kết nối vào cổng 5858 của debugger và lắng nghe trên cổng 8080):

cd $HOME/nodetest 
    npm install node-inspector 
    node_modules/.bin/node-inspector 

Open URL này trong trình duyệt dựa trên WebKit (Chrome, Safari, vv):

http://0.0.0.0:8080/debug?port=5858 

Bấm vào "Scripts" và thiết lập breakpoint trong mã của bạn.

24

này cũng làm việc (và bạn không cần một kịch bản bash riêng):

supervisor -- --debug app.js 
supervisor -- --debug=7070 app.js 
+1

câu trả lời này phải là câu trả lời được chấp nhận. Cảm ơn bạn đã chia sẻ. –

+0

Có điều này hoạt động rất đơn giản và cũng với thanh tra "nâng cao", ví dụ: để chạy Express: 'DEBUG = myapp: * supervisor - --inspect bin/www'. Tôi đã gặp lỗi sự cố khi cố gắng sử dụng tham số -x, nhưng định dạng tham số thay thế này hoạt động. – scipilot

3

Từ CoffeeScript site:

--nodejs Các nút thực thi có một số tùy chọn hữu ích mà bạn có thể đặt, chẳng hạn như --debug, --debug-brk và --max-stack-size. Sử dụng cờ này để chuyển tiếp các tùy chọn trực tiếp tới Node.js.

Tôi cố gắng này và nó làm việc:

giám sát - --nodejs --debug app.coffee

Bạn có thể thêm tham số khác như thế này:

giám sát -w. -n error - --nodejs --debug app.coffee

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