Czy istnieje sposób zmiany nazwy modułu NPM, który został już opublikowany? Chcę zmienić nazwę mojego modułu, aby dokładniej pasowała do interfejsu API, który ujawnia, ale nie chciałbym zostawiać ludzi, którzy już go zainstalowali.
Nie ma na to żadnego widocznego sposobu. Kiedy spotkałem się z tym w przeszłości, podejście, które zastosowałem, brzmiało:
npm deprecate% ProjectName% @ "<= put-latest-version-here" "OSTRZEŻENIE: Nazwa tego projektu została zmieniona na% NewProjectName%. Zamiast tego zainstaluj za pomocą% NewProjectName%."
Krótko mówiąc, nie możesz. Ale npm zapewnia inne rozwiązanie o nazwie npm deprecate
.
Oznacza to, że oznacza określoną wersję lub zakresy wersji tego pakietu jako przestarzałe. Więc następnie, jeśli ktoś spróbuje zainstalować ten pakiet, otrzyma pakiet ostrzegawczy, który jest przestarzały, wraz z Twoją niestandardową wiadomością, w której możesz łatwo określić nową nazwę pakietu.
Stosowanie:
npm deprecate my-package-name@"< latest-version" "your message"
Twoja wiadomość może wyglądać następująco:
WARNING: This project has been renamed to your-new-package-name. Install using new-package-name instead.
<=
niż<
powiadamiać o najnowszej wersji?W mniej niż 24 godziny uruchomiłem następujące polecenie, aby usunąć niewłaściwy pakiet.
źródło
Z dokumentacji:
Jednak nowo opublikowane pakiety - w ciągu 72 godzin - można cofnąć publikację, uruchamiając:
Spowoduje to usunięcie pakietu z rejestru NPM, jeśli został opublikowany mniej niż 72 godziny temu. Następnie możesz zmienić nazwę pakietu i ponownie go opublikować.
źródło
Ktoś stworzył małą, poręczną wtyczkę npm ułatwiającą to doing
https://www.npmjs.com/package/@tiaanduplessis/pkg-rename
npm -g install @tiaanduplessis/pkg-rename
pkg-rename old-package-name
Z dokumentacji:
Możesz również dodać
--publish
flagę, aby opublikować nową nazwę pakietu w ramach tej samej akcji.Pamiętaj, najpierw zmień nazwę pakietu w package.json , a następnie uruchom
pkg-rename
polecenie.źródło
Kiedyś byłem w takiej sytuacji. Opublikowałem pakiet z nazwą
bowser-or-node
zamiastbrowser-or-node
.Nie ma możliwości zmiany nazwy pakietu, musisz zrezygnować i opublikować nowy pakiet.
Chociaż jest jeszcze jedna opcja. Jeśli właśnie opublikowałeś swój pakiet (mniej niż 24 godziny od czasu publikacji) i jesteś pewien, że zgadzasz się na usunięcie pakietu i opublikowanie nowego o właściwej nazwie, możesz to zrobić. Ale NPM nie pozwoli ci usunąć pakietu, gdy minęły 24 godziny od czasu publikacji.
Na szczęście zorientowałem się, że opublikowałem pod złym nazwiskiem w mniej niż 20 minut. Dlatego właśnie usunąłem i opublikowałem ponownie pod nową nazwą.
źródło
Przydarzyło mi się coś cudownego: udało mi się zmienić nazwę pakietu. Pierwotnie był znany jako stdout-renderer, ale zmieniłem każde możliwe wystąpienie tej nazwy i opublikowałem go ponownie po wycofaniu oryginału i voila, pojawia się pod nową nazwą (cli-artist), która nie jest przestarzała na nowo zaktualizowanej liście. Nie jestem pewien, które pole zmienić, ale wyobrażam sobie, że będzie to package.json, ponieważ jest to jedyne, w którym obudowa pasowała w moim przypadku.
mam nadzieję, że to pomoże!
źródło