একটি প্রকাশিত এনপিএম মডিউলটির নতুন নামকরণ


97

ইতিমধ্যে প্রকাশিত এনপিএম মডিউলটির নতুন নামকরণের কোনও উপায় আছে কি? আমি প্রকাশিত এপিআইয়ের সাথে আরও সঠিকভাবে আমার মডিউলটির নামটি পরিবর্তন করতে চাই তবে যারা ইতিমধ্যে এটিকে ইনস্টল করে ফেলেছে তাদের ছেড়ে যেতে চাই না।

উত্তর:


125

এটি করার কোনও উন্মুক্ত উপায় নেই। অতীতে যখন আমি এর মুখোমুখি হয়েছিলাম তখন আমি যে পদ্ধতি গ্রহণ করেছি তা ছিল:

npm অবধি% প্রজেক্টনাম% @ "" <= পুট-সর্বশেষ-সংস্করণ-এখানে "" সতর্কতা: এই প্রকল্পটির নতুন নামকরণ করা হয়েছে% নিউপ্রজেক্টনাম%। পরিবর্তে% নতুনপ্রজেক্টনাম% ব্যবহার করে ইনস্টল করুন। "

এনপিএম হ্রাস নির্দেশাবলী


19

সহজ কথায় আপনি পারবেন না। তবে এনপিএম আপনাকে একটি ভিন্ন সমাধান সরবরাহ করে 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.

4
এটি সর্বশেষতম সংস্করণেও অবহিত করা এর <=চেয়ে <সম্ভবত এটি ব্যবহার করা আরও ভাল ?
ডেভিড শেরেট 21

15

24 ঘন্টােরও কম সময়ে আমি ভুল প্যাকেজ মুছতে কমান্ডটি অনুসরণ করে চলেছি।

npm unpublish <wrong package name> --force

হ্যাঁ, এটি কাজ করে যদি প্যাকেজটি স্রেফ প্রকাশিত হয় (২৪ ঘণ্টার কম)
মোসো আকিনিয়েমি

11

ডকুমেন্টেশন থেকে:

রেজিস্ট্রি ডেটা অপরিবর্তনীয়, একবার প্রকাশিত হওয়ার পরে, একটি প্যাকেজ পরিবর্তন করতে পারে না। আমরা যারা এই প্যাকেজগুলির উপর নির্ভর করে তাদের সুরক্ষা এবং স্থিতিশীলতার কারণে আমরা এটি করি।

তবে নতুন প্রকাশিত প্যাকেজগুলি - hours২ ঘন্টার মধ্যে - এটি চালিয়ে অপ্রকাশিত করা যেতে পারে:

npm unpublish <package_name> -f

এটি এনপিএম রেজিস্ট্রি থেকে প্যাকেজটি সরিয়ে ফেলবে যদি এটি 72 ঘন্টারও কম আগে প্রকাশিত হয়েছিল । তারপরে আপনি আপনার প্যাকেজের নাম পরিবর্তন করতে পারেন এবং এটি আবার প্রকাশ করতে পারেন।

সতর্কতা: আপনি যদি একই নামের সাথে প্যাকেজটি পুনরায় প্রকাশ করার চেষ্টা করেন তবে আপনাকে 24 ঘন্টা অপেক্ষা করতে হবে


10

কেউ সহজেই এটি করার জন্য একটি সহজ সামান্য এনপিএম প্লাগইন তৈরি করেছেন 😊

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

  1. ব্যবহার করে প্যাকেজটি ইনস্টল করুন npm -g install @tiaanduplessis/pkg-rename
  2. আপনার এনপিএম মডিউলটির প্যাকেজ.জসন ফাইলটিতে নতুন নাম দিন এবং এটি সংরক্ষণ করুন
  3. চালান pkg-rename old-package-name

ডকুমেন্টেশন থেকে:

এটি এনএমপি থেকে পুরানো প্যাকেজটির সর্বশেষতম সংস্করণ পাবে এবং এই এবং পূর্ববর্তী সমস্ত প্রকাশিত সংস্করণটিকে বার্তা সহ অবচয় করবে:

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কমান্ড।


4
এনপিএমের একটি নতুন স্লোগান হওয়া উচিত: জাভাস্ক্রিপ্ট বিকাশকারীদের একটি পরিষেবা হিসাবে সময় বাঁচানো
r3wt

4
নোট করুন যে আপনি এনপিএম দিয়ে 2
এফএ

3

আমি একবার এই পরিস্থিতিতে ছিল। আমি bowser-or-nodeপরিবর্তে নামের সাথে একটি প্যাকেজ প্রকাশ করেছি browser-or-node

প্যাকেজটির নতুন নামকরণের কোনও উপায় নেই, আপনাকে একটি নতুন প্যাকেজ অবহেলা এবং প্রকাশ করতে হবে।

যদিও অন্য একটি বিকল্প আছে। আপনি যদি কেবলমাত্র আপনার প্যাকেজটি প্রকাশ করেছেন (প্রকাশের সময় থেকে 24 ঘণ্টারও কম) এবং আপনি যদি নিশ্চিত হন যে আপনি প্যাকেজটি মুছতে ঠিক আছেন এবং সঠিক নামে একটি নতুন প্রকাশ করেছেন, আপনি এগিয়ে যেতে পারেন এবং এটি করতে পারেন। তবে এনপিএম আপনাকে প্যাকেজটি মুছে ফেলার অনুমতি দেবে না প্রকাশের সময় থেকে 24 ঘন্টা হয়ে গেলে।

ভাগ্যক্রমে আমি বুঝতে পেরেছিলাম যে আমি 20 মিনিটেরও কম সময়ে ভুল নাম দিয়ে প্রকাশ করেছি। সুতরাং আমি সবেমাত্র মুছে ফেলা এবং একটি নতুন নাম দিয়ে প্রকাশিত।


আকর্ষণীয়, আমি এটি করার চেষ্টা করছি তবে আমি "বিদ্যমান প্যাকেজগুলির সাথে প্যাকেজের নামও খুব অনুরূপ" বলা হচ্ছে - যদিও আমি সবেমাত্র পুরানোটি মুছে ফেলেছি।
স্টিভ বেনেট

ওহ আসলে আমার ক্ষেত্রে, সাদৃশ্যটি অন্য প্যাকেজের সাথে ছিল, আমার পুরানোটি নয়।
স্টিভ বেনেট

-1

আমার কাছে কেবল দুর্দান্ত কিছু ঘটেছে: আমি একটি প্যাকেজটির নাম পরিবর্তন করতে পেরেছি। এটি প্রথমে স্টডআউট-রেন্ডারার হিসাবে পরিচিত ছিল, তবে আমি নামের প্রতিটি সম্ভাব্য ঘটনাটি পরিবর্তন করেছি এবং এটি নতুন নামটি (ক্লাই-আর্টিস্ট) এর অধীনে সদ্য আপডেট হওয়া তালিকায় অবহিত না করে মূল এবং ভয়েলা অবহেলা করার পরে এটি পুনরায় প্রকাশ করেছি। কোন ক্ষেত্রটি পরিবর্তন করতে হবে তা আমি নিশ্চিত নই, তবে আমি কল্পনা করব এটি প্যাকেজ.জেসনে রয়েছে কারণ কেবলমাত্র আমার ক্ষেত্রে কেসিংটি মিলছে।

আশা করি এইটি কাজ করবে!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.