yarn 1 · बिल्ड और टाइप
संदेश
The engine "node" is incompatible with this module. Expected version ">=20"
इसका मतलब
जो package आप स्थापित कर रहे हैं, वह package.json के engines में बताता है कि उसे कौन-कौन से node संस्करण चाहिए, और आपका संस्करण उस दायरे से बाहर है। आगे आने वाले Expected और Got आवश्यकता तथा आपके संस्करण को साथ रखकर दिखाते हैं, इसलिए वही दो पंक्तियाँ पर्याप्त हैं — और यदि यह केवल CI पर होता है, तो वहाँ का node संस्करण आपकी मशीन से भिन्न है। nvm install 20 && nvm use 20 से node बढ़ाना सीधा उत्तर है, और वही संस्करण .nvmrc तथा CI विन्यास में लिख देने पर वे फिर अलग नहीं होते। yarn का --ignore-engines आगे बढ़ा देता है, पर वह चेतावनी हटाता है, संगतता नहीं बनाता: यदि वह package नई वाक्य-रचना इस्तेमाल करता है तो वह चलते समय syntax त्रुटि बनकर गिरेगा। npm इसी स्थिति को EBADENGINE चेतावनी के रूप में बताता है और डिफ़ॉल्ट रूप से स्थापना रोकता नहीं।
सुधार
nvm install 20 && nvm use 20- कौन देता है
- yarn 1
- बिल्ड और टाइप
- 10
build की त्रुटियाँ किसी औज़ार का चलने से पहले मना कर देना हैं, इसलिए प्रकट होते समय वे कुछ तोड़ती नहीं — पर वे दो सवाल पूछती हैं: क्या आप type या रास्ता असली रूप के अनुसार सुधारेंगे, या as any अथवा दमन-टिप्पणी से उस एक पंक्ति को पार करा देंगे — और यहीं पहली बार वे चीज़ें सामने आती हैं जो केवल आपकी मशीन पर सही हैं: अक्षरों के बड़े-छोटे रूप, extension, और environment variables।
एरर संदेश कैसे पढ़ें
- पहली पंक्ति से पढ़ें। जितना नीचे जाएँगे उतना वह औज़ार के भीतर की बात है; कारण आम तौर पर सबसे ऊपर लिखा होता है।
- फ़ाइल का नाम और पंक्ति संख्या दिखे तो वहीं से शुरू करें — stack का सबसे ऊपरी frame नहीं, बल्कि वह सबसे ऊपरी पंक्ति जिसमें आपकी लिखी फ़ाइल का नाम हो।
- संदेश को जैसा है वैसा खोजें, पर पहले अपने paths और variable नाम हटा दें — वही खोज को अटकाते हैं।
- वही स्थिति औज़ार के हर संस्करण में अलग शब्दों में आती है। नतीजे बेमेल लगें तो संस्करण संख्या भी जोड़ें।
- कोई सुधार चिपकाने से पहले देख लें कि वह क्या फेंक देगा। इनमें कुछ पलटे नहीं जा सकते।
अक्सर पूछे जाने वाले सवाल
Q. “The engine "node" is incompatible with this module. Expected version ">=20"” का क्या मतलब है?
जो package आप स्थापित कर रहे हैं, वह package.json के engines में बताता है कि उसे कौन-कौन से node संस्करण चाहिए, और आपका संस्करण उस दायरे से बाहर है। आगे आने वाले Expected और Got आवश्यकता तथा आपके संस्करण को साथ रखकर दिखाते हैं, इसलिए वही दो पंक्तियाँ पर्याप्त हैं — और यदि यह केवल CI पर होता है, तो वहाँ का node संस्करण आपकी मशीन से भिन्न है। nvm install 20 && nvm use 20 से node बढ़ाना सीधा उत्तर है, और वही संस्करण .nvmrc तथा CI विन्यास में लिख देने पर वे फिर अलग नहीं होते। yarn का --ignore-engines आगे बढ़ा देता है, पर वह चेतावनी हटाता है, संगतता नहीं बनाता: यदि वह package नई वाक्य-रचना इस्तेमाल करता है तो वह चलते समय syntax त्रुटि बनकर गिरेगा। npm इसी स्थिति को EBADENGINE चेतावनी के रूप में बताता है और डिफ़ॉल्ट रूप से स्थापना रोकता नहीं।
Q. इसे कैसे ठीक करें?
nvm install 20 && nvm use 20 — चलाने से पहले ऊपर देख लें कि यह कमांड क्या फेंक देता है।
Q. यह कौन-सा औज़ार देता है?
yarn 1। यह बिल्ड और टाइप में आता है, और संदेश 11 शब्दों का है।