2013-09-25 12 views
11

क्या आप phantomJS में आवश्यकता() का उपयोग करके एनपीएम मॉड्यूल का उपयोग कर सकते हैं? ऐसा लगता है कि जावास्क्रिप्ट फ़ाइलों को लोड करने में सक्षम हो सकता है तो शायद यह संभव है?phantomjs: phantomjs में एनपीएम मॉड्यूल का उपयोग कैसे करें?

+1

क्या आपने जो कहा है, वही करने की कोशिश की है? शायद आप सुखद आश्चर्यचकित होंगे। –

+0

क्या मुझे एक उदाहरण मिल सकता है? यह मेरे लिए एनपीएम मॉड्यूल लोड नहीं कर रहा है। – KJW

+0

मैंने अभी 'आवश्यकता' का उपयोग करके एनपीएम मॉड्यूल आयात करने का प्रयास किया है, क्या आप मुझे जो कोशिश कर रहे हैं उसका कोड नमूना दे सकते हैं? –

उत्तर

16

यह पूरी तरह से nodejs मॉड्यूल पर निर्भर करता है। यह काम करेगा नहीं करता है, तो NodeJS मॉड्यूल देशी समारोह इंटरफ़ेस के माध्यम से कुछ समर्थन की आवश्यकता है। (Http, socket.io तरह NPM मॉड्यूल, phantomjs पर काम नहीं करेगा, क्योंकि यह देशी इंटरफेस पर आश्रितों)

शुद्ध जावास्क्रिप्ट NodeJS मॉड्यूल को फ़ैंटोमज पर भी काम करना चाहिए।

+0

उदाहरण के लिए, चाक उपयोग योग्य नहीं है क्योंकि यह प्रक्रिया मॉड्यूल पर निर्भर करता है। –

+1

क्या आप एक उदाहरण प्रदान कर सकते हैं, ठीक से कैसे नोड मॉड्यूल को phantomjs में इंजेक्ट करना है? जवाब यह स्पष्ट है कि इसे कैसे काम, आवश्यकता या इंजेक्शन बनाने के लिए? – Firanolfind

4

fyi, phantomjs आमज का एक अपरिवर्तनीय है।

आप phantomjs में एएमडी मॉड्यूल का उपयोग नहीं कर सकते हैं, और मैं (2015) किसी भी AMD लोडर (requirejs की तरह) कि phantomjs में काम करता है

अद्यतन के बारे में पता नहीं है: मैं में commonjs मॉड्यूल का उपयोग किया गया फैंटॉमजे 1.x और 2.x, वे एक चेतावनी के साथ अच्छी तरह से काम करते हैं: आप स्रोत-मैपिंग का उपयोग नहीं कर सकते हैं (फ़ाइल के निचले हिस्से में, //# sourceMappingURL=index.js.map जैसा दिखता है) क्योंकि यह फ़ैंटॉमजे मॉड्यूल लोडर विफल होने का कारण बनता है। अन्यथा, सामान्य मॉड्यूल सामान्य रूप से लोड हो जाएगा।

+0

स्रोत मैपिंग यूआरएल टिप्पणी भी मेरी पूर्ववत थी। पारितोषिक के लिए धन्यवाद! – Tyson