2012-03-20 30 views
5

Có chức năng nào trong node.js cung cấp cho tôi tất cả các mô-đun hiện được tải - hay thậm chí tốt hơn, tên tập tin của chúng?Danh sách các mô-đun node.js hiện đang được nạp?

Tôi muốn khởi động lại quá trình của tôi càng sớm càng một module được nạp được cập nhật và vì vậy cần phải biết được file cần phải được theo dõi những thay đổi ...

+0

Tại sao không sử dụng [Nodemon] (https://github.com/remy/nodemon)? –

+1

Vì nó giám sát tất cả các loại tệp, không chỉ các mô-đun được tải hiệu quả. Cảm ơn cho gợi ý anyway. –

Trả lời

9

Kiểm tra nguồn module module. Câu trả lời của bạn là:

Object.keys(require('module')._cache); 
+0

Mã này sẽ làm gì? –

+0

Mã này in danh sách các mô đun nút hiện đang được nạp (tên tệp). – Anatoliy

4

Để bổ sung Anatoliy's helpful answer:

Kể từ Node.js v0.3.0, require.cache chứa các module không cốt lõi nạp:

Object.keys(require.cache); # lists full filenames of loaded non-core modules 

Ưu điểm của require.cache là nó là được ghi lại, không giống như module._cache.

Lưu ý:

  • module cốt lõi như util KHÔNG hiển thị trong require.cache.

    • Để kiểm tra nếu một module là một module lõi, sử dụng require.resolve(<name>): nếu nó trả <name>, nghĩa là, chỉ đơn thuần là các mô-đun tên chính nó, các mô-đun là cốt lõi; các mô-đun không phải lõi sẽ trả về tên tệp đầy đủ của chúng.
  • require.cache chứa hàm băm của tất cả các mô-đun không được tải hiện tại là module trường hợp, được khóa bằng tên đầy đủ của chúng.

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