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.
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.
Odpowiedzi:
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.
W mniej niż 24 godziny uruchomiłem następujące polecenie, aby usunąć niewłaściwy pakiet.
npm unpublish <wrong package name> --force
Z dokumentacji:
Dane rejestru są niezmienne, co oznacza, że po opublikowaniu pakiet nie może ulec zmianie. Robimy to ze względu na bezpieczeństwo i stabilność użytkowników, którzy polegają na tych pakietach.
Jednak nowo opublikowane pakiety - w ciągu 72 godzin - można cofnąć publikację, uruchamiając:
npm unpublish <package_name> -f
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ć.
Uwaga: Musisz odczekać 24 godziny, jeśli próbujesz ponownie opublikować pakiet o tej samej nazwie
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:
Spowoduje to pobranie najnowszej wersji starego pakietu z npm i wycofanie tej i wszystkich wcześniej opublikowanych wersji z komunikatem:
WARNING: This project has been renamed to new-package-name. Install using new-package-name instead.
Możesz również dodać --publish
flagę, aby opublikować nową nazwę pakietu w ramach tej samej akcji.
pkg-rename old-package-name --publish
Pamiętaj, najpierw zmień nazwę pakietu w package.json , a następnie uruchom pkg-rename
polecenie.
Kiedyś byłem w takiej sytuacji. Opublikowałem pakiet z nazwą bowser-or-node
zamiast browser-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ą.
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!
<=
niż<
powiadamiać o najnowszej wersji?