2015-10-09 20 views
15

मैं ब्राउज़र को चुनने की कोशिश कर रहा हूं और कई उदाहरणों से गुजर रहा हूं।आयात/आवश्यकता ब्राउज़र?

import 'jquery'; 

और के साथ स्थानीय फ़ाइलें आयात:

एक उदाहरण में मैं 'आयात' का उपयोग देख

import Header from './Header'; 

लेकिन अन्य उदाहरण मैं लोगों के माध्यम से आयात करने को देखने में:

require('./Header'); 

क्या अंतर है?

उत्तर

21

require() ईएस 5 में नोड मॉड्यूल सिस्टम (कॉमनजेएस) है। import ईएस 6 मॉड्यूल सिंटैक्स है।

यदि आप ES6 मॉड्यूल सिंटैक्स के साथ लिखे गए मॉड्यूल को ब्राउज़र बनाना चाहते हैं तो आपको उन्हें बेबेलिफ़ (या अन्य माध्यमों से बेबेल) जैसे कुछ का उपयोग करके संकलित करने की आवश्यकता होगी।

+1

जानकारी के लिए धन्यवाद। – panthro

+2

यकीन नहीं है कि मैं समझता हूं। यदि मैं बेबेल के माध्यम से ES6 को पारदर्शी करता हूं तो मुझे 'ब्राउज़रइफ़' (या उस मामले के लिए 'आवश्यकता' क्यों चाहिए? क्या यह कुछ पुराने जेएस वातावरण को 'आयात' कथन का अनुवाद नहीं करता है? – Matthias

+4

@ माथियास प्री-ईएस 6 में कोई मूल मॉड्यूल सिस्टम नहीं है, इसलिए उपयोगकर्तालैंड कोड (जैसे कॉमनजेएस/नोड मॉड्यूल और एएमडी) में कई सिस्टम बनाए गए हैं। 'आवश्यकता()' नोड मॉड्यूल एपीआई का हिस्सा है। तो यह "कुछ पुराने जेएस वातावरण समझने" लक्ष्यों में से एक है जिसे आप संकलित कर सकते हैं (जो नोड में चलेगा)। हालांकि, ब्राउज़र को उन एपीआई का कोई ज्ञान नहीं है। नोड एक फ़ंक्शन में मॉड्यूल को लपेटकर लागू करता है जो 'आवश्यकता() 'इंजेक्ट करता है। ब्राउज़र में' आवश्यकता()' केवल एक संदर्भ त्रुटि होगी। ब्राउज़रइफ़ इसे ब्राउज़र में काम करता है, और एक पूर्ण निर्भरता ग्राफ को एक स्क्रिप्ट में बंडल करता है। – JMM

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