2015-02-06 2 views
54

Есть ли способ переименовать модуль NPM, который уже опубликован? Я хочу изменить имя моего модуля, чтобы более точно соответствовать API, который он предоставляет, но не хотел бы оставлять людей, которые уже установили его в беде.Переименование опубликованного модуля NPM

ответ

74

Существует не какой-либо открытый способ сделать это. Когда я столкнулся с этим в прошлом подход, который я взял был:

НПМ принизить% ProjectName% @ «< = пут-последний-версия-здесь» «ВНИМАНИЕ: Этот проект был переименован в% NewProjectName% Установите вместо этого% ProjectName%. " не

npm Deprecate instructions

6

В простых словах нет вы не можете. Но npm предоставляет вам другое решение под названием npm deprecate.

Что он делает, это маркировка определенной версии или диапазона версий этого пакета как устаревшая. Итак, если кто-то попытается установить этот пакет, он получит предупреждающий пакет, устаревший вместе с вашим пользовательским сообщением, в котором вы можете легко указать свое новое имя пакета.

Использование:

npm deprecate [email protected]"< latest-version" "your message" 

Ваше сообщение может быть любая вещь, как:

WARNING: This project has been renamed to your-new-package-name. Install using new-package-name instead. 
0

я когда-то был в такой ситуации. Я опубликовал пакет с именем bowser-or-node вместо browser-or-node.

Невозможно переименовать пакет, вам необходимо отказаться от публикации и опубликовать новый пакет.

Хотя есть еще один вариант. Если вы только что опубликовали свой пакет (менее 24 часов с момента публикации), и если вы уверены, что с ним все будет в порядке, и опубликуйте новый с правильным именем, вы можете пойти и сделать это. Но NPM не позволит вам удалить пакет, как только прошло 24 часа с момента публикации.

К счастью, я выяснил, что я опубликовал неправильное имя менее чем за 20 минут. Поэтому я просто удалил и опубликовал снова с новым именем.

Смежные вопросы