2016-10-06 9 views
6

मैं Angular2 के लिए नया हूं और मुझे यह पता लगाने में दिलचस्पी है कि क्या प्रेजेंटेशन घटकों के पूरे सेट को किसी अन्य एप्लिकेशन में एक एप्लिकेशन के भीतर पुन: उपयोग करने की संभावना है?क्या मैं ऐप्स में घटकों का पुन: उपयोग कर सकता हूं?

उदाहरण के लिए मेरे पास एक एपुलर 2 एप्लिकेशन है जिसे माईएप कहा जाता है और इसमें मेरे कुछ सामान्य घटक हैं जो मैंने बनाए हैं, ये ऐप/घटकों/सामान्य फ़ोल्डर में स्थित हैं और प्रत्येक में टाइपस्क्रिप्ट, सास और HTML फ़ाइल शामिल है।

मैं टाइपस्क्रिप्ट को जेएस और एसएएस को सीएसएस में संकलित करने के लिए गुलप का उपयोग करता हूं।

अब मैं रिलीज करता हूं कि ये सामान्य घटक मेरे अन्य कोणीय 2 ऐप्स में आम हो सकते हैं और इस तरह मैं उन्हें MyOtherApp नामक एक अलग कोणीय 2 ऐप में उपयोग करना चाहता हूं।

मैं MyApp के सभी सामान्य घटकों को खींचने में सक्षम होना चाहता हूं और MyOtherApp में उनका उपयोग करने में सक्षम होना चाहता हूं।

क्या यह संभव है? यदि ऐसा है तो इस प्रकार के सामान्य साझाकरण के लिए सबसे अच्छा तरीका क्या है?

जैसा कि मैंने कहा था कि मैं बिल्डिंग/दौड़ने के लिए गुलप का उपयोग कर रहा हूं, और कोणीय ऐप्स के कॉन्फ़िगरेशन सेटअप के लिए System.js भी उपयोग कर रहा हूं।

मैं आवश्यक होने पर मैंने जो कुछ किया है, उसके कुछ कोड साझा कर सकते हैं, लेकिन मुझे यह सुनिश्चित नहीं है कि साझा करने में क्या मददगार है, इसलिए कृपया अनुरोध करें कि क्या उपयोगी हो सकता है और मैं साझा करूंगा।

उत्तर

4

मुझे लगता है कि सबसे सामान्य तरीका एक अलग पुस्तकालय बनाना है जो NgModule प्रकाशित करता है - जैसे कोणीय स्वयं, कोणीय सामग्री 2 लाइब्रेरी, और अन्य करते हैं। हालांकि पुस्तकालय के लिए बिल्ड स्क्रिप्ट सेट अप करने के लिए इसे और अधिक प्रयास की आवश्यकता है और इसे डीबग करना अधिक कठिन बनाता है।

एक अन्य विकल्प प्रत्येक परियोजना

+0

धन्यवाद, क्या आप एक लिंक या अतिरिक्त जानकारी प्रदान कर सकते हैं कि लाइब्रेरी को डीबग करना क्यों मुश्किल हो सकता है? यदि लाइब्रेरी का अपना स्वयं का निहित अंगुलर प्रोजेक्ट है तो इसे डीबग किया जा सकता है? क्या आपका मतलब यह है कि पुस्तकालय को उस एप्लिकेशन के भीतर डिबग करना जो इसे आयात किया जाता है, मुश्किल हो जाता है? –

+1

हाँ, आप यहां लाइब्रेरी में स्वयं निहित ऐप कर सकते हैं जैसे https://github.com/angular/material2/tree/master/src/demo-app/ हालांकि लाइब्रेरी का उपयोग करके आपके ऐप्स में समस्याएं डीबग करना कठिन होगा - मैं लाइब्रेरी के अंदर ऐप में समस्याओं का अनुकरण करना पसंद करूंगा और उन्हें वहां डिबग कर दूंगा – Rem

+0

धन्यवाद @ रीम, मुख्य कोणीय ऐप के अंदर एक आंतरिक कोणीय ऐप की सेवा करना आसान होगा? मैं जो करना चाहता हूं वह कहीं है कि मैं कह सकता हूं कि गुल्ड सेवा घटकों का कहना है और यह एक ऐसा एप्लीकेशन लोड करेगा जो दिखाता है कि कौन से सामान्य घटक उपलब्ध हैं। –

-1

के लिए कोणीय बूटस्ट्रैप समारोह के साथ अलग अलग प्रवेश बिंदु फाइलों के साथ सभी अनुप्रयोगों के लिए एक एकल टाइपप्रति परियोजना मैं इस तरह मेरी घटकों को व्यवस्थित करने के लिए है:

/routes 
    /route1/ 
    route1component.ts 
    /route1child1 
    /route1child2 
    /route2/ 
    route2component.ts 
    /route2child1 
    /route2child2 

/apponents (project-level-reuse, must be used in at least 2 places with the app to be promoted to an apponent) 
    /project-reusable-component 

/components (cross-project-level-reuse, used across multiple projects) 
    /cross-project-reusable-component 

के के उपयोग के मान लेते हैं Git। अब "घटकों" के भीतर मैं आमतौर पर गिट सबमिड्यूल का उपयोग करके इन परियोजनाओं में साझा कर सकता हूं जैसे कि पुन: प्रयोज्य "घटक" अपने स्वयं के रेपो में रहेंगे और किसी भी प्रोजेक्ट में एक सबमिशन के रूप में खींचा जा सकता है।

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

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