Zaten yayınlanmış bir UÖM modülünü yeniden adlandırmanın bir yolu var mı? Modülümün adını, ortaya çıkardığı API ile daha doğru bir şekilde eşleşecek şekilde değiştirmek istiyorum, ancak onu zaten yüklemiş olan kişileri boşa çıkarmak istemiyorum.
Zaten yayınlanmış bir UÖM modülünü yeniden adlandırmanın bir yolu var mı? Modülümün adını, ortaya çıkardığı API ile daha doğru bir şekilde eşleşecek şekilde değiştirmek istiyorum, ancak onu zaten yüklemiş olan kişileri boşa çıkarmak istemiyorum.
Yanıtlar:
Bunu yapmanın açık bir yolu yok. Geçmişte bununla karşılaştığımda, benimsediğim yaklaşım şuydu:
npm kullanımdan kaldırıldı% ProjectName% @ "<= put-latest-version-here" "UYARI: Bu proje% NewProjectName% olarak yeniden adlandırıldı. Onun yerine% NewProjectName% kullanarak yükleyin."
Basit bir deyişle hayır yapamazsınız. Ancak npm size npm deprecate
.
Yaptığı şey, bu paketin belirli bir sürümünü veya sürüm aralıklarını kullanımdan kaldırılmış olarak işaretlemesidir. Bundan sonra, biri bu paketi yüklemeye çalışırsa, yeni paket adınızı kolayca belirtebileceğiniz özel mesajınızla birlikte kullanımdan kaldırılmış bir uyarı paketi alır.
Kullanım:
npm deprecate my-package-name@"< latest-version" "your message"
Mesajınız şunun gibi herhangi bir şey olabilir:
WARNING: This project has been renamed to your-new-package-name. Install using new-package-name instead.
24 saatten daha kısa bir sürede yanlış paketi silmek için aşağıdaki komutu çalıştırdım.
npm unpublish <wrong package name> --force
Belgelerden:
Kayıt defteri verileri değişmezdir, yani bir kez yayınlandıktan sonra paket değiştirilemez. Bunu, bu paketlere bağımlı olan kullanıcıların güvenliği ve istikrarı için yapıyoruz.
Ancak yeni yayınlanan paketler - 72 saat içinde - aşağıdakiler çalıştırılarak yayından kaldırılabilir:
npm unpublish <package_name> -f
Bu, 72 saatten daha kısa bir süre önce yayınlanmışsa, paketi NPM kayıt defterinden kaldıracaktır . Ardından paketinizin adını değiştirebilir ve tekrar yayınlayabilirsiniz.
Dikkat: Aynı adı taşıyan paketi yeniden yayınlamaya çalışırsanız 24 saat beklemeniz gerekir.
Birisi bunu kolayca yapmak için kullanışlı küçük bir npm eklentisi geliştirdi 😊
https://www.npmjs.com/package/@tiaanduplessis/pkg-rename
npm -g install @tiaanduplessis/pkg-rename
pkg-rename old-package-name
Belgelerden:
Bu, eski paketin en son sürümünü npm'den alacak ve bunu ve önceki tüm yayınlanmış sürümleri bir mesajla kullanımdan kaldıracaktır:
WARNING: This project has been renamed to new-package-name. Install using new-package-name instead.
--publish
Yeni paket adını aynı eylemin bir parçası olarak yayınlamak için bayrağı da ekleyebilirsiniz .
pkg-rename old-package-name --publish
Unutmayın, önce package.json içindeki paketi yeniden adlandırın , ardındanpkg-rename
komutu çalıştırın .
Bir zamanlar bu durumdaydım. Ben isimde bir paket yayınladı bowser-or-node
yerine browser-or-node
.
Bir paketi yeniden adlandırmanın bir yolu yoktur, kullanımdan kaldırmanız ve yeni bir paketi yayınlamanız gerekir.
Bir seçenek daha olmasına rağmen. Paketinizi yeni yayınladıysanız (yayınlanma tarihinden itibaren 24 saatten daha kısa bir süre sonra) ve paketi silmenin ve doğru adla yeni bir paket yayınlamanın uygun olduğundan eminseniz, devam edip bunu yapabilirsiniz. Ancak NPM, yayınlanma zamanının üzerinden 24 saat geçtikten sonra paketi silmenize izin vermez.
Neyse ki 20 dakikadan daha kısa bir süre içinde yanlış isimle yayınladığımı anladım. Bu yüzden sildim ve yeni bir isimle tekrar yayınladım.
Az önce bana harika bir şey oldu: Bir paketi yeniden adlandırmayı başardım. Başlangıçta stdout-renderer olarak biliniyordu, ancak adın olası her oluşumunu değiştirdim ve orijinali kullanımdan kaldırdıktan sonra yeniden yayınladım ve yeni güncellenen listede yeni adı (cli-artist) altında gösterilmemiştir. Hangi alanın değiştirileceğinden emin değilim, ama pack.json içinde olacağını düşünürdüm çünkü benim durumumda kasanın eşleştiği tek alan bu.
umarım yardımcı olur!
<=
yerine kullanmak daha iyidir<
?