2016-07-02 8 views
5

मैं एक प्रतिक्रिया घटक विकसित कर रहा हूं और मैं इसे एनपीएम पर प्रकाशित करना चाहता हूं, लेकिन घटक के साथ-साथ स्टेटिक्स संपत्तियों (जैसे सीएसएस और छवियों) को वितरित करने के तरीके पर मुझे कोई भी सर्वोत्तम प्रथा नहीं मिल सका। खैर, निश्चित रूप से सभी स्रोतों को सादे जेएस और सादे सीएसएस में पारदर्शी किया जाना चाहिए। जेएस के मामले में सबकुछ सरल है - उपयोगकर्ता को केवल उस बंडलर के साथ इसकी आवश्यकता होगी जो वह उपयोग कर रहा है। लेकिन सीएसएस के मामले में यह मुश्किल है। मैं इनलाइन शैलियों का उपयोग नहीं करना चाहता क्योंकि मैं चाहता हूं कि घटक आसानी से अनुकूलन योग्य हो (सीएसएस ओवरराइडिंग द्वारा)। तो, मुझे लगता है कि एकमात्र तरीका है कि उपयोगकर्ता को code फ़ाइल को node_modules से कॉपी करने के लिए कहें जहां उसे इसकी आवश्यकता है (या SASS या किसी अन्य प्रीप्रोसेसर के साथ आयात करें)। लेकिन क्या होगा अगर मेरी सीएसएस फ़ाइल में अन्य स्थैतिक संपत्तियों (जैसे छवियों, फोंट इत्यादि) के संदर्भ हों? मुझे लगता है कि पथ पूरी तरह से गड़बड़ हो जाएगा। तो, मुझे दिलचस्पी है कि ऐसा करने का सही तरीका क्या है? उपयोगकर्ता को उपभोग करने के लिए और सामान्य नुकसान से कैसे बचें इसे आसान बनाना है?स्थिर संपत्तियों के साथ प्रतिक्रिया घटक को एनपीएम में कैसे प्रकाशित करें?

+0

शायद आपको उत्पादन/dist वेबपैक कॉन्फ़िगरेशन दिखाना चाहिए। – MacKentoch

+0

@MacKentoch मेरे पास इसके लिए वेबपैक कॉन्फ़िगर नहीं है क्योंकि मुझे नहीं लगता कि एनपीएम बंडल/मिनीफाइड संस्करणों के लिए सही जगह है। मैं जो करता हूं वह सिर्फ ईएस 5 में जेएसएक्स को पारदर्शी करता है। – alexb

उत्तर

0

यह वास्तव में एक अच्छा सवाल है। मुझे यकीन नहीं है कि मेरा जवाब वह है जो आप उम्मीद कर रहे हैं (यह तकनीकी से अधिक दार्शनिक होगा), लेकिन मुझे लगता है कि यह एक अच्छा प्रारंभिक बिंदु है।

सबसे पहले, मुझे लगता है कि ऐसा करने का कोई "सही तरीका" नहीं है। एक पैकेज की कल्पना करें (यह एक एकल व्यक्ति टीम हो सकती है) पैकेज को बनाए रखने के तरीके, जिस तरह से वे चीजों को नाम देते हैं वह वही तरीका है जो उन्हें समझ में आता है, और यह "सही तरीका" है। इसलिए, नामकरण के लिए कोई "मानक" नहीं है, चीजों को नाम दें जिस तरह से आपको लगता है कि यह सही है और आप जाने के लिए अच्छे हैं।

अब, आईएमएचओ, जो लोग आपके पैकेज का उपयोग करेंगे, उन्हें चिंता करने के बारे में चिंता करनी चाहिए, न कि आप। चूंकि व्यक्ति आपके पैकेज से उपयोग करने के लिए या नहीं, और वे इसका उपयोग कैसे करना चाहते हैं, इसके बारे में विकल्प चुन सकते हैं।

उदाहरण के लिए, यदि वेबपैक का उपयोग करते हैं, तो हम url-loader का उपयोग करने में सक्षम हैं, जो हमें यूआरएल समस्या का समाधान करेगा।

यदि वेबपैक का उपयोग नहीं करते हैं, तो आप क्या कर सकते हैं अपने पैकेज के बारे में एक सतत दस्तावेज प्रदान करते हैं, और इसका उपयोग कैसे करें। आपके उपयोगकर्ता इसका इच्छित टूल का उपयोग करके इसका पालन करेंगे। यदि आपके उपयोगकर्ता अपने वर्कफ़्लो में grep और sed का उपयोग करना चाहते हैं, तो यह ठीक है, क्योंकि वे इसके नियंत्रण में हैं।

इसके अलावा - अब विशेष रूप से सीएसएस के बारे में बात करना - अगर आप छवियों का उपयोग करने वाली शैलियों को प्रदान करना चाहते हैं, तो आप प्रीप्रोसेसर या ऐसा कुछ उपयोग करने का प्रयास कर सकते हैं, और अपने उपयोगकर्ता को कुछ चर को अनुकूलित करने के लिए कुछ चर अनुकूलित कर सकते हैं। उदाहरण के लिए, कल्पना करें कि आप SASS का उपयोग करके assets-path कहेंगे, आपके उपयोगकर्ता को केवल $assets-path: '/path/to/assets/' जोड़ने और सीएसएस संकलित करने की आवश्यकता है।

जब भी मैं एक पैकेज का उपयोग कर रहा हूं, मुझे लगता है कि "ठीक है, वहां बहुत सी चीजें हैं, मुझे उन सभी का उपयोग करने की आवश्यकता नहीं है, मैं उन चीज़ों का उपयोग करूंगा जो मैं चाहता हूं", और यदि मैं आपके पैकेज का उपयोग करूंगा, और मुझे पता है कि सीएसएस फाइलें होंगी, मैं मदद करने के लिए टूल का एक अच्छा सेट ढूंढने की कोशिश करूंगा।

यदि आप कुछ "मानक" का पालन करना चाहते हैं, तो जिथब पर सबसे लोकप्रिय प्रतिक्रिया परियोजनाओं की जांच करने का प्रयास करें, लेकिन जैसा कि मैंने पहले कहा था, जिस तरह से वे सामान का नाम देते हैं, वैसे ही उन्हें समझ में आता है। यह आपको समझ में नहीं आता है! :)

उम्मीद है कि यह मदद करता है!

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

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