2016-02-15 6 views
17

जबकि requirejsnpm-installed modules का उपयोग करने में सक्षम है, तो मैं के माध्यम से स्थापित होने पर पहले स्थान पर requirejs का उपयोग कैसे करूं?ब्राउज़र के लिए एनपीएम स्थापित आवश्यकताएँ जेएस का उपयोग कैसे करें

मैंने example-section में सूचीबद्ध requirejs का उपयोग करने के उदाहरण पढ़े हैं। वे सभी मानते हैं कि require.js किसी विशिष्ट स्थान पर डाउनलोड किया गया है। चूंकि documentation विशेष रूप से

कुछ (जैसे।/Node_modules/foo/foo ") की आवश्यकता नहीं है।

मुझे लगता है कि यह index.html कुछ की तरह में डालने के लिए सही नहीं है:

<html> 
    <head> 
     <script data-main="scripts" src="node_modules/requirejs/require.js"></script> 
    </head> 
    <body> 
     <h1>Hello World</h1> 
    </body> 
</html> 

क्या requirejs उपयोग करने के लिए अगर यह NPM से स्थापित है अनुशंसित तरीका है? अगर मुझे दस्तावेज़ीकरण से कुछ याद आया तो कृपया मुझे बताएं। धन्यवाद

उत्तर

9

ऐसा लगता है कि आप RequireJS के विभिन्न उपयोगों के एक झुंड conflating रहे हैं:

  1. आप कैसे एक RequireJS ब्राउज़र में नोड के माध्यम से स्थापित कर सकते हैं?

    आप इसे npm install requirejs के साथ स्थापित कर सकते हैं, और फिर आपके पास HTML फ़ाइल में script तत्व है जो node_modules/requirejs/require.js पर इंगित करता है। जैसा कि आप अपने कोड स्निपेट में दिखाते हैं। यही सब है इसके लिए। यह कहा जा रहा है कि, मैं जो तैनाती में node_modules रखना पसंद नहीं करता, इसलिए मेरे पास आमतौर पर मेरी बिल्ड प्रक्रिया प्रतिलिपि require.js कहीं और होती है।

  2. आप नोड में RequJS के साथ एनपीएम-स्थापित मॉड्यूल कैसे लोड कर सकते हैं?

    मान लें कि आवश्यकता के बिना आप foo मॉड्यूल को require('foo') कर लोड करेंगे। आप RequJS इंस्टॉल करते हैं और इसे requirejs के रूप में लोड करते हैं। आप Requजेएस का उपयोग कर foo कैसे लोड करते हैं? आप बस requirejs('foo') कर सकते हैं। जब तक RequJS इसे अपने स्वयं के कॉन्फ़िगरेशन के माध्यम से नहीं ढूंढता है, तो यह अंतिम उपाय के रूप में जारी होगा, जो नोड के अपने require पर कॉल करेगा, और इसे इस तरह लोड करेगा? यहां एक उदाहरण दिया गया है। npm install requirejs के साथ RequJS स्थापित करें। इस फ़ाइल को बनाएं:

    var requirejs = require("requirejs"); 
    
    var fs = requirejs("fs"); 
    console.log(fs); 
    

    फिर इसे चलाएं। आप कंसोल नोड के fs मॉड्यूल पर पाएंगे।

  3. ब्राउज़र में RequJS के साथ आप एनपीएम-स्थापित मॉड्यूल कैसे लोड कर सकते हैं?

    यह मॉड्यूल पर निर्भर करता है। RequJS में कोड नहीं है जो ब्राउज़र में जादुई रूप से एक npm- स्थापित मॉड्यूल कार्य करेगा। यह अंततः इस बात पर निर्भर करता है कि मॉड्यूल कैसे संरचित किए जाते हैं। कुछ मामलों:

    ए कुछ एनपीएम-स्थापित मॉड्यूल को बिना संशोधन के RequJS के साथ लोड किया जा सकता है। एक पुस्तकालय है जिसे मैंने लिखा है जिसे एनपीएम के माध्यम से वितरित किया जाता है और फिर भी एएमडी मॉड्यूल का संग्रह है। ब्राउज़र में RequJS के साथ उन्हें लोड करना मुश्किल है।

    बी। इसे define कॉल में लपेटने की आवश्यकता हो सकती है।मैंने हाल ही में gulp-wrap-amd के साथ मेरी परियोजनाओं में से एक में merge-options लोड किया है। merge-options एक कॉमनजेएस मॉड्यूल है। यह RequJS ऑफ़-द-बॉक्स का समर्थन नहीं करता है, लेकिन यदि आप इसे define कॉल से लपेटते हैं, तो यह काम करेगा।

    सी। ब्राउज़र में लोड होने से पहले इसे और अधिक जटिल की आवश्यकता हो सकती है। उदाहरण के लिए, यदि कोई मॉड्यूल नोड के fs मॉड्यूल पर निर्भर करता है, तो आपको ब्राउज़र में चलने वाले fs के लिए एक प्रतिस्थापन प्रदान करना होगा। यह संभवतः आपके कोड पर एक नकली फाइल सिस्टम पेश करेगा।

+0

आपके पहले बिंदु के बारे में, यही कारण है कि 'r.js' मौजूद है? – user2829759

+0

'r.js' मौजूद है * मुख्य रूप से * एक बंडल में मॉड्यूल का एक गुच्छा अनुकूलित करने के लिए। इसका उपयोग कॉमनजेएस मुहावरे में मॉड्यूल को 'परिभाषित' कॉल के साथ भी लपेटने के लिए किया जा सकता है लेकिन मैंने इसका उपयोग नहीं किया है। (और गुलप प्रोजेक्ट 'गल्प-रैप-एमएमडी' की सिफारिश करता है, इसलिए मैंने इसका उपयोग किया है।) – Louis

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