2012-04-22 35 views

Trả lời

6

Nếu bạn chỉ là tìm kiếm các gói NPM hiện được cài đặt trong thư mục ứng dụng, sau đó bạn có thể cài đặt npm gói (npm install -g npm) và programatically gọi ls vào danh sách các gói cài đặt và cây phụ thuộc.

Rõ ràng, điều này không ảnh hưởng đến việc các gói đã cài đặt có thực sự là require 'd trong ứng dụng hay không.

Cách sử dụng không được ghi chép đầy đủ nhưng điều này sẽ giúp bạn bắt đầu.

var npm = require('npm'); 

npm.load(function(err, npm) { 
    npm.commands.ls([], true, function(err, data, lite) { 
     console.log(data); //or lite for simplified output 
    }); 
}); 

ví dụ .:

{ dependencies: 
    { npm: { version: '1.1.18', dependencies: [Object] }, 
    request: { version: '2.9.202' } } } 

Nếu không, tôi tin rằng chỉ có lựa chọn nào khác là nội quan các mô-đun module để có được thông tin liên quan đến/đường dẫn mô-đun được lưu trữ hiện đang được nạp. Tuy nhiên điều này chắc chắn không có vẻ đã được phát triển như một API công cộng. Tôi không chắc chắn nếu có bất kỳ lựa chọn thay thế như vậy sẽ được quan tâm để nghe nếu có ví dụ

var req = require('request'); // require some module for demo purposes 
var m = require('module'); 

// properties of m contain current loaded module info, e.g. m._cache 
+0

này trông workable.I'm sẽ để lại những câu hỏi mở để lâu hơn một chút để xem có ai khác có gợi ý . Cảm ơn! – MrEvil

+0

Có thể đáng được yêu cầu trên kênh IRC của node.js cũng như .. http://nodejs.org/community/ –

2

Tôi tin rằng bạn có thể sử dụng require-analyzer, trong đó loại công trình theo Isaacs (có thể bỏ lỡ một số). Bạn có thể nghe điều này trong Nodeup's first podcast từ 11:55.

Hoặc bạn có thể thử James node-detective mà có thể sẽ tìm thấy phụ thuộc của bạn tốt hơn (nhưng không phải bằng mã chạy), nhưng vì bản chất động Javascript (12:46).

thám

Tìm tất cả các cuộc gọi đến yêu cầu() không có vấn đề như thế nào điên cuồng lồng sử dụng một đi bộ thích hợp của AST.

PS: để lộ những biến package.json để Node.js bạn có thể sử dụng node-pkginfo

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