Apakah ada cara untuk mengganti nama modul NPM yang telah diterbitkan? Saya ingin mengubah nama modul saya agar lebih cocok dengan API yang diekspos tetapi tidak ingin membiarkan orang yang telah menginstalnya dalam kesulitan.
Tidak ada cara untuk melakukan itu. Ketika saya mengalami ini di masa lalu, pendekatan yang saya ambil adalah:
npm deprecate% ProjectName% @ "<= put-latest-version-here" "PERINGATAN: Proyek ini telah diganti namanya menjadi% NewProjectName%. Instal menggunakan% NewProjectName% sebagai gantinya."
Dengan kata sederhana tidak, Anda tidak bisa. Tetapi npm memberi Anda solusi berbeda yang disebut npm deprecate
.
Apa yang dilakukannya adalah menandai versi atau rentang versi tertentu dari paket itu sebagai usang. Jadi selanjutnya jika seseorang mencoba menginstal paket ini, mereka mendapatkan paket peringatan yang tidak digunakan lagi bersama dengan pesan kustom Anda, di mana Anda dapat dengan mudah menentukan nama paket baru Anda.
Pemakaian:
npm deprecate my-package-name@"< latest-version" "your message"
Pesan Anda bisa berupa:
WARNING: This project has been renamed to your-new-package-name. Install using new-package-name instead.
<=
daripada<
memberi tahu versi terbaru juga?Dalam waktu kurang dari 24 jam saya menjalankan perintah berikut untuk menghapus paket yang salah.
sumber
Dari dokumentasi:
Namun paket yang baru diterbitkan - dalam 72 jam - dapat dibatalkan publikasinya dengan menjalankan:
Ini akan menghapus paket dari registri NPM jika diterbitkan kurang dari 72 jam yang lalu. Kemudian Anda dapat mengubah nama paket Anda dan menerbitkannya lagi.
sumber
Seseorang telah membuat plugin npm kecil yang berguna untuk melakukan ini dengan mudah 😊
https://www.npmjs.com/package/@tiaanduplessis/pkg-rename
npm -g install @tiaanduplessis/pkg-rename
pkg-rename old-package-name
Dari dokumentasi:
Anda juga dapat menambahkan
--publish
bendera untuk menerbitkan nama paket baru sebagai bagian dari tindakan yang sama.Ingat, ganti nama paket di package.json terlebih dahulu , lalu jalankan
pkg-rename
perintah.sumber
Saya pernah berada dalam situasi ini. Saya menerbitkan paket dengan nama,
bowser-or-node
bukanbrowser-or-node
.Tidak ada cara untuk mengganti nama paket, Anda harus menghentikan dan menerbitkan paket baru.
Meski ada satu opsi lain. Jika Anda baru saja mempublikasikan paket Anda (kurang dari 24 jam dari waktu publikasi) dan jika Anda yakin tidak masalah dengan menghapus paket dan mempublikasikan yang baru dengan nama yang benar, Anda dapat melanjutkan dan melakukannya. Tetapi NPM tidak akan mengizinkan Anda untuk menghapus paket setelah 24 jam sejak waktu publikasi.
Untungnya saya menemukan bahwa saya menerbitkan dengan nama yang salah dalam waktu kurang dari 20 menit. Jadi saya baru saja menghapus dan menerbitkan lagi dengan nama baru.
sumber
Sesuatu yang luar biasa baru saja terjadi pada saya: Saya berhasil mengganti nama paket. Ini pada awalnya dikenal sebagai stdout-renderer, tetapi saya mengubah setiap kemungkinan kemunculan nama, dan menerbitkannya kembali setelah tidak menggunakan aslinya dan voila itu muncul dengan nama barunya (cli-artist) tidak berlaku lagi dalam daftar yang baru diperbarui. Saya tidak yakin bidang mana yang harus diubah, tetapi saya membayangkannya ada di package.json karena hanya itu yang casingnya cocok dengan kasus saya.
semoga membantu!
sumber