2016-03-25 5 views
11

मैं विभिन्न JavaScript फ़ाइलों में हाल ही में शीर्ष पर निम्न स्ट्रिंग देखें:जावास्क्रिप्ट फ़ाइलों के शीर्ष पर "प्रारूप रजिस्टर" स्ट्रिंग क्या है?

"format register"; 

क्या इस के लिए है?

मैं इसे कोणीय 2 और systemJS लाइब्रेरी फ़ाइलों में देखता हूं।

+3

बहुत ही अद्भुत .. खुद को उत्सुक था और Google खोज किया और यह 4 मिनट पुरानी पोस्ट पहले से ही खोज सूचकांक – charlietfl

+0

में दिखाई देती है। मुझे लगता है कि यह इंगित करता है कि यह किसी प्रकार का बहु प्रारूप लोडर - सिस्टमजेएस, हो सकता है?) कि मॉड्यूल का उद्देश्य ['System.register'] (https://github.com/ModuleLoader/es6-module-loader/blob/master/docs/system-register.md) – apsillers

+0

हम्म से लोड किया जाना है। मैंने जो पढ़ा है, उससे मेरी धारणा यह है कि SystemJS सामान्य रूप से SystemJS मॉड्यूल का पता लगाने के लिए फ़ाइल के शीर्ष पर 'SystemJS.register() 'की उपस्थिति को देखता है, लेकिन टाइपस्क्रिप्ट कंपाइलर इससे पहले कुछ कोड डालता है और गड़बड़ करता है अनुमानी। "सिस्टम रजिस्टर" टिप्पणी किसी भी तरह से जेनरेट कोड से ऊपर हो सकती है, और या तो स्पष्ट रूप से एक विकल्प के रूप में अनुमति दी जाती है, या केवल उसी रेगेक्स से मेल खाने के लिए होता है और इसलिए अस्थायी हैक के रूप में उपयोग किया जा रहा है। –

उत्तर

3

'प्रारूप रजिस्टर' जोड़कर; फ़ाइलें सब के शीर्ष टीएस पर इस मुद्दे को हल किया जा रहा है लेकिन मुझे लगता है कि यह केवल मदद करता है कि SystemJS को समझने/सही ढंग से मॉड्यूल लोड ..

के रूप में कहा गया है यह सिर्फ बग कम कर देता है। Here वह संरेखण वार्तालाप है जिसने इसे शुरू किया। लेकिन यह सिर्फ SystemJS लोड सही ढंग से बनाता है। दरअसल यह बहुत जाना जाता हो गया है कि SystemJS एक ऐसा मॉड्यूल जो कि आवश्यक नहीं की मेड इस जोड़कर:

System.config({ 
    meta: { main: { format: 'register' } } 
}); 

अधिक here समझाया गया है कि।

Reason इसका उपयोग करने के लिए। निष्कर्ष निकालने के लिए, "प्रारूप प्रारूप" का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि SystemJS अपने मॉड्यूल को सही तरीके से लोड करता है, और क्रम में! उम्मीद है कि यह मदद की!

+1

अरे अमानुएल, मुझे लगता है कि आप कुछ प्रश्नों के लिए [टैग: कोडेकैडी] टैग जोड़ने की कोशिश कर रहे हैं। कृपया ध्यान दें कि यह टैग स्टैक ओवरफ़्लो पर उपयोगी होने के लिए बहुत सामान्य है, और इसका उपयोग नहीं किया जाना चाहिए। कृपया इस टैग को किसी भी पोस्ट में जोड़ने के रूप में इसे संपादित करें कतार में सुझाए गए संपादन कतार और प्रश्न स्वयं में शामिल न करें। यदि आपके कोई प्रश्न हैं, तो कृपया मुझे [एसओसीवीआर] (http://chat.stackoverflow.com/rooms/41570/so-close-vote-reviewers) चैट रूम में पहुंचने के लिए स्वतंत्र महसूस करें। – JAL

2

महान सवाल, मैं चिंतित था और खुद को नहीं जानता था इसलिए एक खोज चला गया।

ऐसा लगता है कि यह ES6 शैली मॉड्यूल का समर्थन करने के लिए ES5 कोड का एक तरीका है।

System.register को ES5 के भीतर ES6 मॉड्यूल के सटीक अर्थशास्त्र का समर्थन करने के लिए डिज़ाइन किए गए एक नए मॉड्यूल प्रारूप के रूप में माना जा सकता है। यह एक प्रारूप है जिसे सहयोग से विकसित किया गया था और ट्रेसेर (तत्काल), बैबेल और टाइपस्क्रिप्ट (सिस्टम के रूप में) में मॉड्यूल आउटपुट के रूप में समर्थित है। ईएस 6 मॉड्यूल द्वारा समर्थित सभी गतिशील बाध्यकारी और परिपत्र संदर्भ व्यवहार इस प्रारूप द्वारा समर्थित हैं। इस तरह यह ES6 मॉड्यूल में पॉलीफिल पथ के लिए एक सुरक्षित और व्यापक लक्ष्य प्रारूप के रूप में कार्य करता है।

https://github.com/ModuleLoader/es6-module-loader/wiki/System.register-Explained

उदाहरण उपयोग:

कुछ और अधिक विस्तार जोड़ने के लिए, यहाँ कोणीय 1.x उन्नयन नोट, जो कार्रवाई में प्रारूप रजिस्टर के उदाहरण से पता चलता में एक उदाहरण है, लेकिन फ़ाइल के शीर्ष पर एक टिप्पणी के बजाय, यह कॉन्फ़िगर घोषणा में इसके बजाय है।

System.config({ packages: { 'base/app/js': { defaultExtension: false, format: 'register', ...

https://angular.io/docs/ts/latest/guide/upgrade.html

कारण यह

जब मॉड्यूल प्रारूप सेट नहीं है, स्वत: नियमित अभिव्यक्ति आधारित पता लगाने प्रयोग किया जाता है का उपयोग करें। यह मॉड्यूल प्रारूप पहचान पूरी तरह से सटीक नहीं है, लेकिन बहुमत के मामलों के लिए अच्छी तरह से प्रदान करता है।

https://github.com/systemjs/systemjs/blob/master/docs/module-formats.md

का उपयोग करना "प्रारूप रजिस्टर" फ़ाइल के शीर्ष पर तरीके में जो प्रारूप का पता लगाने के लिए एक संकेत देता है में से एक है।

+0

दुखद भाग यह है कि आपने खोज की है कि ओपी खुद को कर सकता था और शायद उसी संसाधन को मिला – charlietfl

+1

प्रतिक्रिया @charlietfl के लिए धन्यवाद मैंने कुछ और विवरण जोड़ा है। मैंने जो जवाब दिया है, हालांकि हां एक खोज परिणाम से है, यह आधिकारिक दस्तावेज से है, जो कि खोज करने के लिए सही खोजशब्दों के बिना आश्चर्यजनक रूप से मुश्किल है। इसे ओपी के सीधा सवाल को और जानकारी के साथ दिखाते हुए एक स्निपेट मिला है। –

+1

हाय @charlietfl उम्मीद है कि यह उपयोगी उत्तर के योग्य पर्याप्त विवरण जोड़ता है। :-) –

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