एक प्रकाशित एनपीएम मॉड्यूल का नाम बदलना


94

क्या एनपीएम मॉड्यूल का नाम बदलने का कोई तरीका है जो पहले ही प्रकाशित हो चुका है? मैं अपने मॉड्यूल का नाम अधिक सटीक रूप से उस एपीआई से मेल करना चाहता हूं जिसे वह उजागर करता है, लेकिन ऐसे लोगों को छोड़ना नहीं चाहता, जिन्होंने पहले से ही इसे लर्च में स्थापित किया है।

जवाबों:


123

ऐसा करने का कोई भी तरीका नहीं है। जब मैंने इसे पिछले दृष्टिकोण से लिया है, तो मैं यह था:

npm deprecate% ProjectName% @ "<= put-latest-version-here-here" "चेतावनी: इस परियोजना का नाम बदलकर% NewProjectName% कर दिया गया है। इसके बजाय% NewProjectName% का उपयोग करके इंस्टॉल करें।"

npm निर्देश संक्षिप्त करें


18

सरल शब्दों में नहीं, तुम नहीं कर सकते। लेकिन npm आपको एक अलग समाधान प्रदान करता है जिसे कहा जाता है npm deprecate

यह क्या करता है यह एक विशेष संस्करण या उस पैकेज के संस्करण श्रेणियों के रूप में चिह्नित है। इसलिए यदि कोई इस पैकेज को स्थापित करने का प्रयास करता है तो उसे आपके कस्टम संदेश के साथ पदावनत पैकेज मिलता है, जिसमें आप आसानी से अपना नया पैकेज नाम निर्दिष्ट कर सकते हैं।

उपयोग:

npm deprecate my-package-name@"< latest-version" "your message"

आपका संदेश किसी भी चीज की तरह हो सकता है:

WARNING: This project has been renamed to your-new-package-name. Install using new-package-name instead.

1
संभवतः इसका उपयोग करने के <=बजाय बेहतर है <कि यह नवीनतम संस्करण के लिए भी सूचित हो?
डेविड शेरेट 21

14

गलत पैकेज को हटाने के लिए 24 घंटे से कम समय में मैंने कमांड का पालन किया।

npm unpublish <wrong package name> --force

हां, यह काम करता है अगर पैकेज सिर्फ प्रकाशित हुआ (24 घंटे के तहत)
मोसो अकिनेमी

10

प्रलेखन से:

रजिस्ट्री डेटा अपरिवर्तनीय है, जिसका अर्थ है कि एक बार प्रकाशित होने के बाद, एक पैकेज नहीं बदल सकता है। हम उन पैकेजों पर निर्भर उपयोगकर्ताओं की सुरक्षा और स्थिरता के कारणों के लिए ऐसा करते हैं।

हालाँकि नए प्रकाशित पैकेज - 72 घंटों के भीतर - चलकर अप्रकाशित हो सकते हैं:

npm unpublish <package_name> -f

यह एनपीएम रजिस्ट्री से पैकेज को हटा देगा यदि इसे 72 घंटे से कम समय पहले प्रकाशित किया गया था। फिर आप अपने पैकेज का नाम बदल सकते हैं और उसे फिर से प्रकाशित कर सकते हैं।

सावधानी: यदि आपको एक ही नाम के साथ पैकेज को पुनः प्रकाशित करने का प्रयास करना है तो आपको 24 घंटे इंतजार करना होगा


8

किसी ने इसे आसानी से करने के लिए एक आसान सा npm प्लगइन बनाया है

https://www.npmjs.com/package/@tiaanduplessis/pkg-rename

  1. पैकेज का उपयोग कर स्थापित करें npm -g install @tiaanduplessis/pkg-rename
  2. पैकेज में अपनी npm मॉड्यूल का नाम बदलें। फ़ाइल को सहेजें और इसे सेव करें
  3. Daud pkg-rename old-package-name

प्रलेखन से:

यह पुराने पैकेज का नवीनतम संस्करण npm से प्राप्त करेगा और इसे और पिछले सभी प्रकाशित संस्करणों को एक संदेश के साथ चित्रित करेगा:

WARNING: This project has been renamed to new-package-name. Install using new-package-name instead.

आप --publishनए पैकेज नाम को उसी क्रिया के भाग के रूप में प्रकाशित करने के लिए ध्वज को भी जोड़ सकते हैं ।

pkg-rename old-package-name --publish

याद रखें, package.json में पैकेज का नाम बदलने के पहले , उसके बाद चलाने के pkg-renameआदेश।


1
npm में एक नया नारा होना चाहिए: जावास्क्रिप्ट डेवलपर्स सेविंग समय एक सेवा के रूप में
r3wt

1
ध्यान दें कि pkg-rename काम नहीं करता है यदि आपके पास nFA के साथ 2FA सक्षम है
Shazron

3

मैं एक बार इस स्थिति में था। मैंने bowser-or-nodeइसके बजाय नाम के साथ एक पैकेज प्रकाशित किया browser-or-node

पैकेज का नाम बदलने का कोई तरीका नहीं है, आपको एक नया पैकेज निकालना और प्रकाशित करना होगा।

हालांकि एक अन्य विकल्प है। यदि आपने अभी अपना पैकेज प्रकाशित किया है (प्रकाशित होने के 24 घंटे से कम) और यदि आप सुनिश्चित हैं कि आप पैकेज को हटाने के साथ ठीक हैं और एक नया नाम प्रकाशित करते हैं, तो आप आगे बढ़ सकते हैं और इसे कर सकते हैं। लेकिन एनपीएम आपको प्रकाशन के समय से 24 घंटे बाद एक बार पैकेज को हटाने की अनुमति नहीं देगा।

सौभाग्य से मुझे पता चला कि मैंने 20 मिनट से भी कम समय में गलत नाम के साथ प्रकाशित किया। इसलिए मैंने बस हटा दिया और एक नए नाम के साथ फिर से प्रकाशित किया।


दिलचस्प है, मैं ऐसा करने की कोशिश कर रहा हूं, लेकिन मुझे "पैकेज का नाम भी मौजूदा पैकेजों के समान ही बताया जा रहा है" - भले ही मैंने पुराने को हटा दिया हो।
स्टीव बेनेट

ओह वास्तव में मेरे मामले में, समानता दूसरे पैकेज की थी, मेरे पुराने की नहीं।
स्टीव बेनेट

-1

मेरे साथ कुछ अद्भुत हुआ: मैं एक पैकेज का नाम बदलने में कामयाब रहा। यह मूल रूप से स्टडआउट-रेंडरर के रूप में जाना जाता था, लेकिन मैंने नाम की हर संभव घटना को बदल दिया, और मूल और वसीला को चित्रित करने के बाद इसे फिर से प्रकाशित किया जो इसके नए नाम (क्ली-आर्टिस्ट) के तहत दिखाया गया है जो कि नई अपडेट की गई सूची में मौजूद नहीं है। मुझे यकीन नहीं है कि किस क्षेत्र को बदलना है, लेकिन मुझे लगता है कि यह पैकेज में होगा। क्योंकि यह एकमात्र ऐसा है जहां केसिंग मेरे मामले में मेल खाता है।

उम्मीद है की वो मदद करदे!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.