2017-01-05 11 views
11

का उपयोग करते समय कस्टम बिल्ड आउटपुट फ़ोल्डर का उपयोग करें, प्रतिक्रिया प्रतिक्रिया ऐप्स बनाने के लिए फेसबुक create-react-appcommand प्रदान करता है। जब हम npm run build चलाते हैं, तो हम /build फ़ोल्डर में आउटपुट देखते हैं।क्रिएट-रिएक्ट-ऐप

NPM रन बनाने के

निर्माण फ़ोल्डर में उत्पादन के लिए एप्लिकेशन बनाता है। यह सही ढंग से बंडल उत्पादन मोड में प्रतिक्रिया करता है और सर्वोत्तम प्रदर्शन के लिए निर्माण को अनुकूलित करता है।

निर्माण को छोटा किया गया है और फ़ाइल नामों में हैंश शामिल हैं। आपका ऐप तैनात करने के लिए तैयार है!

आउटपुट के लिए /build के बजाय हम कस्टम फ़ोल्डर का उपयोग कैसे कर सकते हैं? धन्यवाद।

+0

इस [सवाल] को देखने के (https://stackoverflow.com/questions/44448851/how-do-i-change-src-folder-to-something- अन्य में-निर्माण-प्रतिक्रिया-ऐप/48590867 # 48590867) और 'बिल्ड' को 'जो भी' में बदलने का प्रयास करें। कोशिश नहीं की है। – nikrb

उत्तर

9

आप मौजूदा कॉन्फ़िगरेशन विकल्पों के साथ बिल्ड आउटपुट फ़ोल्डर का नाम नहीं बदल सकते हैं।

इसके अलावा, आपको नहीं करना चाहिए। यह the philosophy behind react-create-app का हिस्सा है: वे कॉन्फ़िगरेशन पर सम्मेलन कहते हैं।

  1. ठीक बाद निर्माण प्रक्रिया पूर्ण होने पर, एक आदेश लिखते हैं कि प्रतियां किसी अन्य फ़ोल्डर में निर्माण फ़ोल्डर सामग्री आप चाहते हैं:

    तुम सच में अपने फ़ोल्डर का नाम बदलने की जरूरत है, मैं दो विकल्प देखेंगे। उदाहरण के लिए आप try the copyfiles npm package, या कुछ भी समान कर सकते हैं।

  2. आप eject react-create-app पर जा सकते हैं और कॉन्फ़िगरेशन को ट्विक कर सकते हैं।

    यदि आप निर्माण उपकरण और कॉन्फ़िगरेशन विकल्पों से संतुष्ट नहीं हैं, तो आप किसी भी समय बाहर निकल सकते हैं। यह आदेश आपकी परियोजना से एकल निर्माण निर्भरता को हटा देगा।

    इसके बजाय, यह आपकी प्रोजेक्ट में सभी कॉन्फ़िगरेशन फ़ाइलों और ट्रांजिटिव निर्भरताओं (वेबपैक, बेबेल, ईएसलिंट इत्यादि) की प्रतिलिपि बनायेगा ताकि आपके पास पूर्ण नियंत्रण हो। निकालने के अलावा सभी आदेश अभी भी काम करेंगे, लेकिन वे कॉपी की गई स्क्रिप्ट को इंगित करेंगे ताकि आप उन्हें ट्विक कर सकें। इस बिंदु पर आप अपने ही हैं।

    हालांकि, यह ध्यान रखना महत्वपूर्ण है कि यह एक-तरफा ऑपरेशन है। एक बार जब आप बाहर निकल जाएंगे, तो आप पर वापस नहीं जा सकते! आप सभी भविष्य के अपडेट खो देते हैं।

इसलिए, मैं तुम्हें, एक कस्टम फ़ोल्डर नामकरण का उपयोग नहीं करने के लिए यदि संभव हो तो सलाह देते हैं। डिफ़ॉल्ट नामकरण के साथ चिपकने का प्रयास करें। यदि कोई विकल्प नहीं है, तो # 1 आज़माएं। यदि यह अभी भी आपके विशिष्ट उपयोग-मामले के लिए काम नहीं करता है और आप वास्तव में विकल्पों में से हैं - # 2 का पता लगाएं। सौभाग्य!

+0

फाइलों की प्रतिलिपि बनाने के लिए फाइलों की प्रतिलिपि बनाने का क्या फायदा होगा? – azium

+0

मेरी मुख्य चिंता यह थी कि यदि किसी अन्य 'प्रतिक्रिया-निर्माण-एप' आदेश इनपुट के लिए '/ build' फ़ोल्डर का उपयोग कर रहे हैं तो यह परेशानी का कारण बन सकता है। (उदाहरण: तैनाती प्रक्रिया के दौरान)। तो कॉपी करना सबसे सुरक्षित विकल्प है जो मैं देखता हूं। पीएस: यदि इनपुट के लिए डिफ़ॉल्ट '/ build' फ़ोल्डर का उपयोग करने की कोई योजना नहीं है, तो मैं आपके साथ सहमत हूं - बस इसे नामकरण करना एक ही चाल करेगा। –

0

आप एक छोटे से हैक साथ विन्यास अद्यतन कर सकते हैं, अपने रूट निर्देशिका के अंतर्गत:

  1. NPM रन इजेक्ट
  2. config/webpack.config.prod.js - लाइन 61 - करने के लिए परिवर्तन पथ: __dirname + './ ../ - choice-- के अपने निर्देशिका '
  3. config/paths.js - लाइन 68 - resolveApp पर अपडेट करें (' ./-- choice-- के अपने निर्देशिका ')

की जगह --your निर्देशिका पसंद की - फ़ोल्डर निर्देशिका के साथ आप इसे

पर ध्यान दें कि मैंने प्रदान किया गया पथ थोड़ा गंदा हो सकता है, लेकिन कॉन्फ़िगरेशन को संशोधित करने के लिए आपको बस इतना करना है। अपने package.json

11

संपादित करें:

"build": "react-scripts build && mv build webapp" 
+1

मुझे इसे "बिल्ड" बनाना था: "प्रतिक्रिया-स्क्रिप्ट बिल्ड && rm -rf दस्तावेज़ और एमवी बिल्ड दस्तावेज़" अन्यथा पहले रन के बाद यह इसे ओवरराइट करने के बजाय दस्तावेज़ फ़ोल्डर को _into_ बनाता है। – TimoSolo