node 17+ · npm
संदेश
Error: error:0308010C:digital envelope routines::unsupported
इसका मतलब
node 17 के साथ OpenSSL 3 आया, जिसने एक पुराना hash algorithm डिफ़ॉल्ट से हटा दिया, और जो औज़ार अब भी उसे माँगता है वह उसी hash कॉल के भीतर गिर जाता है। यह लगभग हमेशा कोई पुराना webpack 4, या उसे भीतर समेटे कोई औज़ार, आधुनिक node पर चलने का मामला है। export NODE_OPTIONS=--openssl-legacy-provider उस प्रक्रिया भर के लिए पुराने algorithm फिर चालू कर देता है और build के लिए हानिरहित है। पर यह एक मरे औज़ार को ज़बरदस्ती ज़िंदा रखना है: webpack 5 या अपने framework के वर्तमान version पर जाने से इस विकल्प की ज़रूरत ही मिट जाती है।
सुधार
export NODE_OPTIONS=--openssl-legacy-provider- कौन देता है
- node 17+
- npm
- 20
npm में कारण अंतिम छह npm ERR! पंक्तियों में नहीं, पहली code XXXX पंक्ति में लिखा होता है, और जब गड़बड़ी आपके कोड की जगह dependency के पेड़ या native build से आती है, तो node_modules मिटाकर फिर install करने से आधे मामले सुलझ जाते हैं।
एरर संदेश कैसे पढ़ें
- पहली पंक्ति से पढ़ें। जितना नीचे जाएँगे उतना वह औज़ार के भीतर की बात है; कारण आम तौर पर सबसे ऊपर लिखा होता है।
- फ़ाइल का नाम और पंक्ति संख्या दिखे तो वहीं से शुरू करें — stack का सबसे ऊपरी frame नहीं, बल्कि वह सबसे ऊपरी पंक्ति जिसमें आपकी लिखी फ़ाइल का नाम हो।
- संदेश को जैसा है वैसा खोजें, पर पहले अपने paths और variable नाम हटा दें — वही खोज को अटकाते हैं।
- वही स्थिति औज़ार के हर संस्करण में अलग शब्दों में आती है। नतीजे बेमेल लगें तो संस्करण संख्या भी जोड़ें।
- कोई सुधार चिपकाने से पहले देख लें कि वह क्या फेंक देगा। इनमें कुछ पलटे नहीं जा सकते।
अक्सर पूछे जाने वाले सवाल
Q. “Error: error:0308010C:digital envelope routines::unsupported” का क्या मतलब है?
node 17 के साथ OpenSSL 3 आया, जिसने एक पुराना hash algorithm डिफ़ॉल्ट से हटा दिया, और जो औज़ार अब भी उसे माँगता है वह उसी hash कॉल के भीतर गिर जाता है। यह लगभग हमेशा कोई पुराना webpack 4, या उसे भीतर समेटे कोई औज़ार, आधुनिक node पर चलने का मामला है। export NODE_OPTIONS=--openssl-legacy-provider उस प्रक्रिया भर के लिए पुराने algorithm फिर चालू कर देता है और build के लिए हानिरहित है। पर यह एक मरे औज़ार को ज़बरदस्ती ज़िंदा रखना है: webpack 5 या अपने framework के वर्तमान version पर जाने से इस विकल्प की ज़रूरत ही मिट जाती है।
Q. इसे कैसे ठीक करें?
export NODE_OPTIONS=--openssl-legacy-provider — चलाने से पहले ऊपर देख लें कि यह कमांड क्या फेंक देता है।
Q. यह कौन-सा औज़ार देता है?
node 17+। यह npm में आता है, और संदेश 4 शब्दों का है।