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 के बजाय यार्न का उपयोग करना याद रखना होगा।