कोणीय ब्राउजर सूची: कैनीयूज़-लाइट पुराना है। कृपया अगला कमांड `npm अपडेट 'चलाएं


11

मुझे हाल ही में एक कोणीय 8 परियोजना (नोड v10.16.0) पर यह त्रुटि मिलनी शुरू हो गई है। चल रहे npm अपडेट caniuse-lite browserlist ने कुछ नहीं किया

इसलिए मैंने पैकेज-लॉक.जॉन को हटा दिया, नोड_मॉड्यूल्स को हटा दिया और एनपीएम इंस्टॉल किया, लेकिन ब्राउज़रलिस्ट फ़ाइल चली गई। दोबारा जब मैं एनजी बिल्ड चलाता हूं, तो मुझे एक ही संदेश मिलता है: ब्राउजरलिस्ट: कैनीयूज़-लाइट पुराना है। कृपया अगली कमांड चलाएंnpm update

मैं इस विषय को उसी विषय पर देखता हूं : ब्राउजरलिस्ट: कैनीयूज़-लाइट पुराना है। कृपया अगला कमांड `एनपीएम अपडेट कैनीयूज़-लाइट ब्राउज़र लिस्टलिस्ट` चलाएं। हालांकि, यह वेबकॉमपाइलर और ऑटोप्रेक्सिफ़र के बारे में बात करता है और मुझे इसका कोई पता नहीं है। कृपया मार्गदर्शन करें


प्रश्न: क्या आपने इस कोणीय प्रोजेक्ट को विजुअल स्टूडियो के साथ बनाया है? प्रश्न: क्या हुआ जब आप बस निर्देशों का पालन करते थे और भागते थे npm update caniuse-lite browserslist?
फोग्याडे

1
हाँ, कोणीय परियोजना दृश्य स्टूडियो 2017 का उपयोग कर रही है। कुछ भी नहीं हुआ जब मैं एनपीएम अपडेट कैनीयूज़-लाइट ब्राउज़र सूची का उपयोग करता हूं। कुछ भी स्थापित नहीं ...
सिल्वर फिश

चूँकि ब्राउजर फ़ाइल चली गई है, क्योंकि मैंने नया एनपीएम इंस्टॉल किया है (कैनीयूज़-लाइट वहां है), क्या आप अनुशंसा करते हैं कि मुझे ब्राउज़रलिस्ट में एनपीएम चलाना चाहिए?
सिल्वर फिश

मैं सिर्फ एक ही समस्या है। phpstrom में यह मुझे चलाने के लिए कहता है, npm updateलेकिन इससे समस्या हल नहीं हुई, बस कोणीय 8 के लिए मेरे टाइपस्क्रिप्ट संस्करण को उच्च बनाया गया
BlakkM9

1
मैं यह भी वही मुद्दा रहा हूँ, कोणीय 8 विजुअल स्टूडियो कोड का उपयोग कर रहा हूँ, हालांकि मुझे यकीन नहीं है कि संपादक इस संघर्ष का कारण क्यों होगा। इस पर कोई जवाब अभी तक? हम इस सप्ताह एक बड़ी नई सुविधा जारी करने वाले हैं और निश्चित रूप से अब हमारा ऐप नहीं बनेगा। मुझे ब्राउज़र लिस्ट का उपयोग करते हुए हमारे कई नोड_मॉडल दिखाई देते हैं
होमब्री

जवाबों:


8

नीचे दिए गए आदेशों को चलाकर पुरानी समस्या को हल किया गया।

npm cache clean  # optional
npm install caniuse-lite@latest --save

npm cache cleanसीधे काम नहीं करता क्योंकि यह नवीनतम संस्करणों में स्वचालित रूप से npm द्वारा नियंत्रित किया जाता है। क्या आप हमें उपयोग करना चाहते हैं --force? यदि हाँ, तो कृपया स्पष्ट करें कि हमें कैश को क्यों करना चाहिए।
विष्णुदेव Vish

1
npm कैश क्लीन की आवश्यकता नहीं है। आप सीधे भाग सकते हैंnpm install caniuse-lite@latest --save
डिप्टेन

1
अपने ऐप में caniuse-lite को जोड़ना (package.json bloat के माध्यम से) एक अच्छा विचार नहीं है, क्योंकि यह आपके ऐप की निर्भरता नहीं है - केवल आपका npm टूलसेट। नीचे लंबा स्पष्टीकरण देखें। '--Save' भी बेमानी है क्योंकि यह अब इंस्टॉल के साथ डिफ़ॉल्ट क्रिया है।
jdh

यह मेरे लिए caniuse-lite को सफलतापूर्वक स्थापित करता है, फिर भी मुझे अभी भी वही त्रुटि मिलती है।
nullmn

मैंने नोड 10.x के साथ कोशिश की और यह तय हो गया। कृपया अपने नोड संस्करण की जाँच करें।
डिप्टेन

2

TLDR: (स्पष्टीकरण के बिना प्रति-सहज ज्ञान युक्त लग सकता है)

  npm install caniuse-lite browserslist
  npm uninstall caniuse-lite browserslist

स्पष्टीकरण:

यह चेतावनी संदेश ("canisuse-lite पुराना है, कृपया ....") निर्माण / प्रारंभ के दौरान ब्राउज़र सूची में स्क्रिप्ट द्वारा आउटपुट है यदि यह पाता है कि caniuse-lite का स्थापित संस्करण वर्तमान संस्करण से 2 संस्करणों से पुराना है। यदि आपकी परियोजना में कुछ भी नहीं बदला है और आप अपना प्रोजेक्ट शुरू करते या बनाते समय अचानक इस msg को देखते हैं, तो इसका मतलब है कि कैनीयूज़-लाइट के लिए हाल ही में संस्करण अपडेट हुआ था।

दुर्भाग्य से, यदि आपके द्वारा अपने प्रोजेक्ट की निर्भरता के रूप में कैनीयूज़-लाइट स्थापित किया गया है तो टेक्स्ट संदेश जो ब्राउज़रसूची प्रदर्शित करता है वह केवल सहायक है। सबसे अधिक संभावना है, आपने नहीं किया। इसलिए जब आप सुझाए गए 'एनपीएम अपडेट कैनीयूज़-लाइट' या 'एनपीएम अपडेट' कैनीयूज़-लाइट @ लेटेस्ट '(या' एनपीएम इंस्टॉल ') चलाते हैं, तो एनपीएम आपके पैकेज में सूचीबद्ध पैकेज को नहीं देखता है। यह निर्भर करता है, इसलिए इसे अनदेखा करता है अनुरोध।

फिर ये पैकेज निर्भरता कैसे बन गए? जब आपका प्रोजेक्ट बनाया गया था (हो सकता है कि ऐप एंगुलरैप या क्रिएट-रिएक्शन-ऐप या आपके फ्रेमवर्क के समान हो), npm ने अपने आवश्यक उपकरणों की निर्भरता के रूप में ब्राउज़रलिस्ट को स्थापित किया, न कि आपके प्रोजेक्ट की निर्भरता के रूप में। उसी समय, कैनीयूज़-लाइट को ब्राउज़रलिस्ट की निर्भरता के रूप में स्थापित किया गया था। बाद में जब परियोजना को अद्यतन किया गया था, एक पैकेज-लॉक.जसन फ़ाइल बनाई गई थी जो सभी निर्भरता को एक विशिष्ट संस्करण में लॉक करती है।

यदि आप पैकेज-लॉक.जन में निर्भरता की सूची में संस्करण की जानकारी को अपडेट करने में सक्षम थे, तो 'एनपीएम इंस्टॉल' चलाने से ये पैकेज नोड_मॉड्यूल्स में अपडेट हो जाएंगे। आपको पैकेज-लॉक.जॉन को मैन्युअल रूप से संपादित नहीं करना चाहिए। इसके बजाय, सबसे अच्छा तरीका है:

  1. अस्थायी रूप से इन पैकेजों को अपनी परियोजना की निर्भरता बनाएं:

    npm caniuse-lite browserlist स्थापित करें

    पैकेज को नवीनतम संस्करण में अपडेट करने के अलावा, यह पैकेज.जॉन और (सबसे महत्वपूर्ण) पैकेज-लॉक.जॉन दोनों में निर्भरता सूची को अपडेट करता है।

  2. इन पैकेजों को अपनी परियोजना की प्रत्यक्ष निर्भरता के रूप में निकालें:

    npm caniuse-lite browserlist की स्थापना रद्द करें

    चूंकि ये पैकेज अन्य निर्भरता द्वारा उपयोग किए जाते हैं, इसलिए उन्हें नोड_मॉडल से हटाया नहीं जाता है। केवल एक प्रोजेक्ट निर्भरता के रूप में उन्हें हटाने के लिए package.json अपडेट किया जाता है।

  3. कमिट पैकेज-लॉक.जसन। पैकेज-लॉक.जॉसन में उप निर्भरता की सूची से अपडेट किए गए दो पैकेजों को प्राप्त करने के लिए कोई भी व्यक्ति अभी 'एनपीएम इंस्टॉल' चला सकता है और चेतावनी संदेश को रोक सकता है।


मुझे आपके समाधान की कोशिश की गई है लेकिन मुझे अभी भी इस संदेश के साथ एक चेतावनी है (ब्राउजरलिस्ट: कैनीयूज़-लाइट पुराना है। कृपया अगली कमांड चलाएं npm update) और एक स्वच्छ कोणीय सेटअप के साथ।
अलेक्जेंडर कुशनिर

@AlexanderKushir - चरण 1 में स्थापित करने के बाद, ब्राउज़ करने के लिए नोड_मॉड्यूल में देखें और यह जांचने के लिए caniuse-lite कि क्या उनके व्यक्तिगत पैकेज में संस्करण। आज की)। ब्राउज़र सूची का नया संस्करण (4.8.3) केवल शिकायत करना चाहिए अगर कैनुसुलाइट अपडेट नहीं किया गया था। क्या यह संभव है कि आपके पास .npmrc में एक कैशिंग सर्वर सेट हो जो इन दोनों पैकेजों को अपडेट नहीं कर रहा है? (यदि आप कर रहे हैं, तो अस्थायी रूप से नाम बदलने की कोशिश करें। स्थापित करने से पहले .npmrc!)
jdh

मुझे केवल वह सब करना था caniuse-liteऔर संदेश चला गया
मूनस्टोम

@MoonStom - यदि आप केवल caniuse-lite स्थापित करते हैं, तो आप इसे ऐप की निर्भरता के रूप में जोड़ रहे हैं, जो सटीक नहीं है। समस्या npm और ब्राउज़ सूची में है। एक बार जब वे तय हो जाते हैं, तो आपके ऐप को कैनुएज़-लाइट पर निर्भर नहीं होना चाहिए।
jdh
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.