systemjs के साथ काम करने कोणीय (1.x) प्राप्त करने के लिए प्रयास करते समय मुझे एहसास हुआ कि वहाँ वर्तमान में क्षमता (है कि मैं के बारे में पता) स्वचालित रूप से कोणीय घटकों में $inject
डालने के लिए है, जो कार्यों के लिए भी जब तर्क काम कर रहे घटक रहता नहीं है कि minifier द्वारा उलझन में हैं। मैन्युअल $inject
एनोटेशन बनाने थकाऊ, त्रुटियां उत्पन्न हो सकती और सूखी प्रिंसिपल का उल्लंघन करती है।क्या सिस्टमजेएस प्लगइन्स पहले से ही संकलित फाइलों को संशोधित कर सकता है?
एक परिपक्व NPM मॉड्यूल ng-annotate
कहा जाता है जो इस समस्या का हल और bundling के लिए इसी तरह के कई स्थितियों में इस्तेमाल किया जाता है। जैसा कि मैं SystemJS की खोज कर रहा हूं, मुझे लगता है कि एक प्लगइन सिस्टम है जिसमें स्रोत कोड का अनुवाद करने की क्षमता शामिल है, जो वास्तव में ng-annotate
करता है।
से मैं क्या देख सकते हैं, हालांकि, SystemJS केवल आप एक ही लोडर के लिए एक विशेष फाइल एक्सटेंशन मैप करने के लिए क्षमता और प्लग इन के सभी उदाहरण देता है एक नया फ़ाइल प्रकार का समर्थन कर रहे हैं। मैं एक नई फ़ाइल प्रकार जोड़ने के बजाय सिस्टमजेएस की ट्रांसलेशन प्रक्रिया के आउटपुट को पोस्ट-प्रोसेस करना चाहता हूं। ऐसा लगता है कि SystemJS ऐसा करने में सक्षम होना चाहिए क्योंकि इसमें प्रसंस्करण पाइपलाइन है, लेकिन मैं यह समझ नहीं पा रहा हूं कि इसे सही तरीके से कैसे लगाया जाए। अभी मैं उसी प्रभाव को प्राप्त करने के लिए ब्राउज़र का उपयोग कर रहा हूं, लेकिन मैं बिल्ड कार्यों के एक जटिल सेट के साथ समाप्त हो गया हूं और यदि संभव हो तो मैं सिस्टमजेएस के साथ इसे सरल बनाना चाहता हूं।
अन्य रणनीतियों लोडर पाइप लाइन में ng-annotate
का उपयोग करने के साथ SystemJS भी सराहना की जाएगी सक्षम होने के लिए।
आप इनलाइन सरणी एनोटेशन का उपयोग क्यों नहीं करते? –
क्योंकि कोड की शैली जो मैं लिख रहा हूं वह अनुकूल नहीं है। मैं टाइपस्क्रिप्ट में लिख रहा हूं जहां मेरी अधिकांश सेवाएं कक्षाओं के रूप में समाप्त होती हैं और मैं अपनी सेवाओं को मॉड्यूल के साथ एक अलग फ़ाइल में पंजीकृत करता हूं, न कि सेवा के समान फ़ाइल में। साथ ही, '$ इंजेक्ट' के साथ यह * DRY * का उल्लंघन करता है। अंत में, कोणीय प्रश्न का प्राथमिक विषय नहीं है। –