यह "प्रतिक्रिया-लिपियाँ बेदखल" आदेश क्या करता है?


106

npm run ejectआज्ञा क्या करती है? मुझे समझ में आता है कि अन्य कमांड्स स्टार्ट, बिल्ड, टेस्ट जैसे क्या करते हैं। लेकिन बेदखल करने का कोई विचार नहीं है।


2
कैसे जाँचें / सत्यापित करें कि यह आदेश लागू किया गया था या नहीं?
एलेक्सनिकोव

जवाबों:


157

create-react-app सभी को एनपीएम मॉड्यूल के साथ एनकैप्सुलेट करता है जो इसे आंतरिक रूप से उपयोग कर रहा है, जिससे कि आपका पैकेज.जसन आपके बारे में चिंता किए बिना बहुत साफ और सरल हो जाएगा।

हालांकि, यदि आप अधिक जटिल चीजें करना शुरू कर रहे हैं और मॉड्यूल स्थापित करना शुरू कर सकते हैं जो मॉड्यूल के साथ बातचीत कर सकते हैं, तो रिएक्शन-ऐप का उपयोग हुड के तहत कर रहा है, उन नए मॉड्यूल को यह जानना होगा कि क्या उपलब्ध है और क्या नहीं है, जिसका अर्थ है कि आपको प्रतिक्रिया बनाने की आवश्यकता है उन्हें अन-सार दें।

वह, संक्षेप में, क्या react-scripts ejectकरता है। यह छुपाना बंद कर देगा जो हुड के नीचे स्थापित है और इसके बजाय उन चीजों को अपनी परियोजना के पैकेज में निकाल दें। सभी को देखने के लिए।


3
@ शेरगी का उत्तर अधिक सटीक है। निकालें केवल package.json और NPM मॉड्यूल के बारे में नहीं है, यह अन्य बातों के (कोलाहल, webpack, eslint, आदि) भी शामिल है github.com/facebook/create-react-app/blob/master/packages/...
ब्रूनो मोंटीरो

68
npm run eject

नोट: यह एक तरफ़ा ऑपरेशन है। एक बार जब आप ejectवापस नहीं जा सकते!

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

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

आपको कभी उपयोग नहीं करना है eject। क्यूरेटेड फीचर सेट छोटे और मध्यम तैनाती के लिए उपयुक्त है, और आपको इस सुविधा का उपयोग करने के लिए बाध्य नहीं होना चाहिए। हालाँकि हम समझते हैं कि यदि आप इसके लिए तैयार हैं तो आप इसे अनुकूलित नहीं कर सकते तो यह उपकरण उपयोगी नहीं होगा।

प्रलेखन के लिए लिंक


इजेक्टिंग के विकल्प

बेदखल करना आपको कुछ भी अनुकूलित करने देता है, लेकिन उस बिंदु से आपको अपने आप को कॉन्फ़िगरेशन और स्क्रिप्ट को बनाए रखना होगा। यदि आपके पास इसी तरह की कई परियोजनाएं हैं, तो यह चुनौतीपूर्ण हो सकता है। ऐसे मामलों में हम बेदखल करने के बजाय आपको कांटा react-scriptsऔर किसी अन्य पैकेज की जरूरत है। यह लेख गहराई से कैसे करना है में गोता लगाता है। आप इस मुद्दे पर अधिक चर्चा पा सकते हैं


हम फिर से जोड़कर वापस जा सकते हैंnpm install react-scripts
आशीष कांबले

मैं इन दोनों दृष्टिकोणों से पूरी तरह से असंतुष्ट हूं। आपके पास कोई स्पष्ट कारण नहीं के साथ प्राचीन निर्भरताएं हैं। दोनों दृष्टिकोण इन समस्याओं को छिपाते हैं और परियोजना से मृत-अंत कोड तक विकास के प्रयासों को परिभाषित करते हैं। उचित निर्भरता प्रबंधन के लिए कोई विकल्प नहीं है।
24rpád Magosányi
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.