2012-04-22 7 views
5

प्रोजेक्ट रूट पर package.json फ़ाइल को हथियाने के अलावा किसी चल रहे नोड.जेएस एप्लिकेशन की निर्भरताओं की सूची निर्धारित करने का कोई तरीका है? क्या नोड इस मेटा जानकारी को वैश्विक नामस्थान में कुछ var के रूप में उपलब्ध रखता है?चल रहे node.js अनुप्रयोग से उपयोग किए गए एनपीएम मॉड्यूल का निर्धारण

उत्तर

6

तुम सिर्फ आवेदन निर्देशिका में वर्तमान में स्थापित NPM पैकेज के लिए देख रहे हैं, तो आप स्थापित कर सकते हैं npm पैकेज (npm install -g npm) और programatically आह्वान ls इंस्टॉल किए गए पैकेज और निर्भरता पेड़ सूची।

जाहिर है, इस पर कोई असर नहीं है कि इंस्टॉल किए गए पैकेज वास्तव में require 'एप्लिकेशन में हैं या नहीं।

उपयोग अच्छी तरह से प्रलेखित नहीं है लेकिन यह आपको प्रारंभ करना चाहिए।

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 
    }); 
}); 

उदा .:

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

अन्यथा, मेरा मानना ​​है कि केवल अन्य विकल्प module मॉड्यूल आत्मनिरीक्षण करने के लिए जानकारी वर्तमान में लोड/कैश्ड मॉड्यूल रास्तों से संबंधित प्राप्त करने के लिए है। हालांकि यह निश्चित रूप से एक सार्वजनिक एपीआई के रूप में विकसित नहीं किया गया है। मुझे यकीन नहीं है कि क्या कोई विकल्प है, तो यह सुनना चाहेंगे कि क्या उदाहरण हैं

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

इस्तेमाल कर सकते हैं इस workable.I'm अगर किसी और को सुझाव है देखने के लिए सवाल थोड़ी देर के लिए खुला छोड़ने के लिए जा रहा लगता है Node.js को । धन्यवाद! – MrEvil

+0

नोड.जेएस आईआरसी चैनल पर भी पूछने लायक हो सकता है .. http://nodejs.org/community/ –

2

मैं तुम्हें require-analyzer है, जो काम करता है के Isaacs के अनुसार तरह (कुछ याद कर सकते हैं) इस्तेमाल कर सकते हैं विश्वास करते हैं। आप इसे 11:55 से Nodeup's first podcast में सुन सकते हैं।

या आप जेम्स node-detective को आजमा सकते हैं जो शायद आपकी निर्भरता को बेहतर लगेगा (लेकिन कोड चलाकर नहीं), लेकिन जावास्क्रिप्ट गतिशील प्रकृति (12:46) के कारण।

जासूसी

सभी का पता लगाएं की आवश्यकता होती है() चाहे कितना पागलपन से एएसटी की एक उचित पैदल दूरी का उपयोग कर नेस्ट कहता है।

पुनश्च: उन package.json चर का पर्दाफाश करने के आप node-pkginfo

संबंधित मुद्दे