2015-09-08 6 views
13

मैं jspm 0.16.2 का उपयोग कर रहा हूं।क्या मैं एक ट्रांसलेटर के बिना जेएसपीएम का उपयोग कर सकता हूं?

मैं उपयोग कर रहा हूँ इस test project

जब मैं किसी से Transpiler सेट: transpiler: "none"

मैं कोई त्रुटि मिलती है XHR error (404 Not Found) loading http://localhost:53404/none.js

अगर मैं 'परीक्षण' के लिए transpiler यह एक ही त्रुटि देता है निर्धारित करते हैं, इसके अलावा test.js

क्या यह jspm के साथ एक बग है?

मैं एक ट्रांसपेलर का उपयोग नहीं करना चाहता था, लेकिन एएमडी मॉड्यूल लोड करने के लिए system.js का उपयोग करना चाहता था।

जब मैंने config.js से ट्रांसलेटर विकल्प हटा दिया, तो यह Traceur को लोड करने का प्रयास करता है।

मैं रनटाइम पर चल रहा ट्रांसपेलर नहीं रखना चाहता।

उत्तर

8

यह स्पष्ट नहीं है कि आप क्या करने की कोशिश कर रहे हैं। यदि आप ES2015 सुविधाओं का उपयोग करते हैं (उदा। ES2015 मॉड्यूल, let, आदि), तो आपको ट्रांसपरर की आवश्यकता है। यदि आप कोई कोड ES2015 सुविधाओं के साथ अपना कोड लिखते हैं, तो कोई ट्रांसलेटर लोड नहीं किया जाएगा। आप main.js में ES5 कोड डालकर और अपने डीबगर के नेटवर्क टैब को चेक करके इसे देख सकते हैं। browser.js डाउनलोड नहीं किया जाएगा।

transpilerSystem.config में आपके द्वारा डाली गई स्ट्रिंग सचमुच ट्रांसलेटर फ़ाइल है। "babel" के मामले में, यह npm:[email protected] (map क्षेत्र से) और फिर जो जब path क्षेत्र के साथ संयुक्त jspm_packages/npm/[email protected] को संदर्भित करता है कि निर्देशिका में .jspm.json अंक प्रवेश बिंदु browser.js को मैप किया है, फ़ाइल है, जो transpiler ही फाइल क्लाइंट पक्ष है ।

आप सेट जो भी स्ट्रिंग transpiler को, jspm अप System यह इंगित करने के लिए सेट हो जाएगा (पथ बस हो जाएगा baseURL अगर आप इसे मैप नहीं है) और यह लाने। बेशक यह किसी भी मनमाने ढंग से स्ट्रिंग के लिए नहीं है जैसे कि none या test। डिफ़ॉल्ट, यदि आप कुछ भी निर्दिष्ट नहीं करते हैं, जैसा कि आपने देखा है traceur है।

यदि आपके पास क्लाइंट साइड ट्रांस्प्लिंग है जो आप टालने का प्रयास कर रहे हैं तो jspm bundle करके सर्वर पक्ष को पार करने का विकल्प आपके पास है।

कोड के लिए जो केवल ईएस 5 और एएमडी का उपयोग करता है, बिना पारदर्शी के, उपरोक्त रेपो की no-transpile शाखा चेकआउट करें। ध्यान दें कि browser.js डाउनलोड नहीं किया गया है, भले ही transpile अभी भी "babel" पर सेट है। विस्तृत जानकारी के लिए

+0

+1। मुझे लगता है कि अब मैं समझता हूं कि स्थिति क्या है। मुझे लगता है कि मुझे क्या गुमराह है कि आप jspm init चलाते समय ट्रांसपिलर प्रश्न के लिए "नहीं" का उत्तर दे सकते हैं, और यह ट्रांस्लर के लिए config.js में "none" डालेंगे। –

+1

हां, लेकिन फिर यदि आपके कोड में ES2015 विशेषताएं हैं, तो 'सिस्टम' * * इसे किसी भी तरह से पारदर्शी करने की कोशिश नहीं करेगा -' none' transiler के साथ। करने के लिए सुरक्षित बात, यदि आप निश्चित करना चाहते हैं कि कोई ट्रांसलेशन नहीं है, तो उस फ़ील्ड को किसी भी अमान्य स्ट्रिंग (जैसे 'none') पर सेट करना है और फिर अपना कोड सीधे ES5 के साथ लिखें। इस तरह, अगर आप किसी भी ES2015 कोड में घुसपैठ करते हैं, तो आप त्रुटि देंगे आपके द्वारा आयात किए गए कुछ मॉड्यूल के माध्यम से। – caasjj

+0

ठीक है, अब मुझे मिल गया है। बहुत बहुत धन्यवाद। –

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

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