TLDR: उपयोग npm uninstall -g create-react-app
करने वाले नए पैकेज का उपयोग करके वैश्विक पैकेज को अनइंस्टॉल करें और उपयोग करें npx create-react-app app
।
मुद्दा
आप create-react-app
उस पुराने संस्करण का उपयोग कर रहे हैं जिसे आपने npm का उपयोग करके विश्व स्तर पर स्थापित किया है। create-react-app
आदेश इस वैश्विक पैकेज का आह्वान।
यदि आप सुनिश्चित हैं सकता है कि आप चलाकर पुराने संस्करण का उपयोग कर रहे थे npm outdated -g create-react-app
या की तुलना create-react-app --version
के साथ npm view create-react-app
।
तथ्य यह है कि संस्करण react-scripts
आज तक था, उस पैकेज के संस्करण से कोई लेना-देना नहीं है जो ऐप को बूटस्ट्रैपिंग कर रहा है ( create-react-app
), जो उन पैकेजों के नवीनतम संस्करणों को पकड़ लेता है जो इसका उपयोग करते हैं ( react-scripts
इस मामले में)।
समाधान
यदि आप create-react-app
कमांड का उपयोग जारी रखना चाहते हैं , तो आपको उपयोग करके वैश्विक पैकेज को अपडेट करना होगा npm update -g create-react-app
। ध्यान दें कि आप इसे समय-समय पर अद्यतित रखना चाहते हैं। आप देखेंगे कि create-react-app
यह अनुशंसा नहीं करता है (आपके इंस्टॉल से लॉग में नोट किया गया है)।
एक बेहतर तरीका यह होगा कि आप पूरी तरह से ग्लोबल इन्स्टॉल ( npm uninstall -g create-react-app
) को डिलीट करें और इसके बजाय इसका उपयोग करें npx
ताकि यह हर बार पैकेज के नवीनतम संस्करण को पकड़ सके ( npx
नीचे विस्तार से अधिक जानकारी )।
आपको यह पुष्टि करनी चाहिए कि यह create-react-app
सुनिश्चित करने के लिए उपयोग करने की कोशिश कर रहा है कि कमांड "नहीं मिली" है।
स्थापना रद्द करने के साथ मुद्दे?
आप डीबग कर सकते हैं जहाँ इसका उपयोग करके स्थापित किया गया था which create-react-app
। यदि आपको इसे अनइंस्टॉल करने में समस्या आ रही है, तो आपके पास अपनी मशीन पर नोड के कई संस्करण / npm हो सकते हैं (कई इंस्टॉल से, या क्योंकि आप एक नोड संस्करण प्रबंधक का उपयोग करते हैं जैसे nvm
)। यह एक अलग मुद्दा है जिसे मैं यहां संबोधित नहीं करूंगा, लेकिन इस उत्तर में कुछ जानकारी है ।
एक त्वरित परमाणु दृष्टिकोण बलपूर्वक rm -rf
उस रास्ते पर ( ) को हटाएगा जो which create-react-app
वापस लौटता है।
परिशिष्ट
ग्लोबल एनपीएम पैकेज और npx
कमांड
$ NPM_PACKAGE_NAME
हमेशा पैकेज के विश्व स्तर पर स्थापित संस्करण का उपयोग करेंगे, चाहे आप जिस भी निर्देशिका में हों।
$ npx NPM_PACKAGE_NAME
वर्तमान निर्देशिका से रूट तक खोज करने पर मिलने वाले पैकेज के पहले संस्करण का उपयोग करेंगे:
- यदि आपके पास अपनी वर्तमान निर्देशिका में पैकेज है, तो वह इसका उपयोग करेगा।
- यदि आपके पास एक निर्देशिका में पैकेज है जो आपकी वर्तमान निर्देशिका का माता-पिता है, तो यह पहले वाले को खोजेगा।
- यदि आपके पास विश्व स्तर पर पैकेज स्थापित है, तो वह इसका उपयोग करेगा।
- वरना अगर तुम सब पर पैकेज की जरूरत नहीं है, यह अस्थायी रूप से यह स्थापित हो जाएगा, इसका इस्तेमाल, और फिर इसे त्यागें। - यह सुनिश्चित करने का सबसे अच्छा तरीका है कि पैकेज अद्यतित है ।
Npx के बारे में अधिक जानकारी इस उत्तर में मिल सकती है ।
के npx
साथ उपयोग कर रहा हैcreate-react-app
create-react-app
प्रतिक्रिया npx
पैकेज ( इसके बजाय ) जो उस पैकेज ( yarn create react-app
, npm init react-app
) के लिए विशिष्ट हैं, बनाने के लिए कुछ विशेष कमांड / उपनाम हैं , लेकिन npx create-react-app
यह उसी तरह काम करेगा जैसे यह अन्य पैकेजों के साथ करता है।
yarn
बनाम npm
वैश्विक इंस्टॉल
यार्न एक अलग फ़ोल्डर में वैश्विक इंस्टॉल को स्टोर करता है npm
, यही कारण है कि yarn create react-app
वैश्विक npm पैकेज की स्थापना रद्द किए बिना तुरंत काम करेगा (जहां तक यार्न का संबंध है, पैकेज स्थापित नहीं किया गया है)।
यह सिर्फ एक अस्थायी समाधान है, हालांकि, जब आपको क्रिएट रिएक्ट ऐप का उपयोग करते समय हमेशा npm के बजाय यार्न का उपयोग करना याद रखना होगा।