मैं एक नया ऐप शुरू करना चाहता हूं जिसमें वेब और प्रतिक्रियाशील इंटरफेस दोनों होंगे।

मैंने सभी व्यावसायिक-गैर-पर्यावरण आश्रित-कोड को तीसरे पैकेज-उर्फ एसडीके में स्थानांतरित करने का निर्णय लिया- जिसे मैं देशी प्रतिक्रिया और प्रतिक्रिया दोनों के बीच साझा कर सकता हूं।

तो मेरे प्रोजेक्ट में अब 4 मॉड्यूल हैं

  1. वेब -- क्रे के साथ बनाया गया
  2. एसडीके - मुख्य रूप से रेडक्स + रेडक्स सागा + रिएक्ट कंटेनर + हॉक
  3. मोबाइल प्रतिक्रिया देशी
  4. सर्वर - नोडज एक्सप्रेस एपीआई।

    • सभी वेब, मोबाइल और सर्वर एसडीके मॉड्यूल पर निर्भर होंगे।
    • sdk मॉड्यूल सर्वर मॉड्यूल पर निर्भर करेगा - मुख्य रूप से नकली नकली और डेटा इंटरफेस के लिए।

क्या ऐसी संरचना प्राप्त करने का कोई मानक तरीका है?

सबसे शायद मैं करना पसंद करूंगा

  • प्रत्येक प्रोजेक्ट में पैकेज को फिर से स्थापित करने से बचने के लिए सभी नोड-मॉड्यूल को एक फ़ोल्डर में फहराने के लिए यार्न वर्कस्पेस का उपयोग करें
  • मैं एक ही समय में सभी 4 परियोजनाओं में काम करूंगा, इसलिए मुझे इसके बारे में जागरूक होने के लिए हॉटरेलोड की आवश्यकता है।

**चुनौतियों का सामना करना पड़ रहा है**

  1. सीआरए src फोल्डर के बाहर कोड को ट्रांसपाइल नहीं करता है, हालांकि वेब प्रोजेक्ट qhen को रिफ्रेश करता है, मैं sdk पर बदलाव करता हूं। यह es6 कोड को नहीं समझ सकता है।
  2. जेस्ट भी es6 को node_modules से नहीं समझता है

एसडीके और वेब मॉड्यूल दोनों पर एक साथ काम करते हुए मैं पुनर्निर्माण कदम से कैसे बच सकता हूं?

18
Zalaboza 21 जुलाई 2018, 01:58
क्या आपने सीखने की कोशिश की है github.com/lerna/lerna..
 – 
Rahil Ahmad
25 जुलाई 2018, 11:28
जो ऊपर बताई गई किसी भी चुनौती को ठीक करने में मदद नहीं करेगा
 – 
Zalaboza
25 जुलाई 2018, 15:20
> सीआरए src फोल्डर के बाहर कोड को ट्रांसपाइल नहीं करता है - यह किसी के लिए भी चुनौती नहीं है, यह एक बहुत ही सीमित 'हैलो-वर्ल्ड' इंस्ट्रूमेंट का दुरुपयोग है, जो वास्तविक जीवन के उपयोग के मामलों में फिट नहीं होता है। और babel कॉन्फिग कई का सिर्फ एक उदाहरण है। बस इसे बाहर निकालें, या कुछ ओवरराइडिंग टूल का उपयोग करें (जो मौजूदा एक पर एक और हैक है)।
 – 
amankkg
26 जुलाई 2018, 06:39

2 जवाब

यार्न कार्यक्षेत्र आपके द्वारा सोची जा रही परियोजना संरचना के लिए एक अच्छा तरीका लगता है।

आपके पास एक packages निर्देशिका हो सकती है जहां आप अपने प्रोजेक्ट जोड़ सकते हैं:

/packages
  - web
  - sdk
  - native

अब आप babel -w का उपयोग करके अपने प्रत्येक पैकेज के लिए कोड परिवर्तन देखने के लिए babel का उपयोग कर सकते हैं और यार्न कार्यक्षेत्र में समय लगेगा उन्हें एक साथ जोड़ने की देखभाल।

यदि बैबल वाचर्स चल रहे हैं, तो आप एसडीके में जो भी बदलाव करेंगे, वे web और native पैकेज दोनों में दिखाई देंगे। आप एक ही कमांड का उपयोग करके दर्शकों को सक्रिय करने के लिए समवर्ती जैसी किसी चीज़ का उपयोग करके इन सभी को एक साथ जोड़ सकते हैं।

मैंने एक ओपन-सोर्स लाइब्रेरी का सह-लेखन किया है जहां हम एक समान संरचना का पालन करते हैं जिसे आप यहां देख सकते हैं। इस परियोजना में अंतर यह है कि हमारा रेडक्स तर्क एक अलग रेपो में है।

मज़ाक के काम करने के लिए, आप अपनी .babelrc फ़ाइल में एक test env जोड़ सकते हैं जो मॉड्यूल को ट्रांसपाइल करता है। तो आप test जैसे दो अलग-अलग वातावरण जोड़ सकते हैं जो कॉमनज मॉड्यूल में ट्रांसपाइल होते हैं और एक es वातावरण जो ES मॉड्यूल रखता है ताकि आपके उपयोगकर्ता ट्री-शेकिंग का लाभ उठा सकें। उदाहरण कॉन्फ़िगरेशन

आशा है कि यह आपको एक अच्छा प्रारंभिक बिंदु देता है :)

6
Divyanshu Maithani 30 जुलाई 2018, 08:59

आप इस तरह की एक परियोजना संरचना का प्रयास कर सकते हैं:

| package.json
|- node_modules
|- Web
 | package.json
|- SDK
 | package.json
|- Mobile
 | package.json
|- Server
 | package.json

तब आप रूट फ़ोल्डर में सब कुछ स्थापित कर सकते हैं और NODE_PATH env चर सेट कर सकते हैं:

export NODE_PATH='yourdir'/node_modules
-1
MaddEye 25 जुलाई 2018, 10:03
जो ऊपर बताई गई किसी भी चुनौती को ठीक करने में मदद नहीं करेगा
 – 
Zalaboza
25 जुलाई 2018, 15:20
आप इसके साथ एक फ़ोल्डर पर होस्ट करने के लिए यार्न वर्कस्पेस का उपयोग कर सकते हैं और रूट पैकेज से केंद्रीय हॉट रीलोड प्राप्त कर सकते हैं।json
 – 
MaddEye
25 जुलाई 2018, 16:12
1
रिएक्ट src फोल्डर के बाहर कोड ट्रांसपाइल नहीं करता है। इसलिए कार्यक्षेत्र में किसी भी मॉड्यूल को आयात करते समय आपको "मॉड्यूल पार्स विफल: अनपेक्षित टोकन (16:26)" मिलेगा
 – 
Zalaboza
25 जुलाई 2018, 16:58