Как удалить пакет, установленный по ссылке npm?


162

Как установить пакет узла с помощью sudo npm linkкаталога каталога, как я могу удалить пакет после завершения разработки?

npm linkустанавливает пакет как символическую ссылку в глобальном каталоге системы ('/ usr / local / lib`). Это позволяет вам тестировать пакет, все еще разрабатывая его, без необходимости устанавливать его снова и снова.

Какую команду npm мне нужно запустить, чтобы снова удалить ссылку?

Ответы:


166

Пакет можно удалить с помощью той же команды удаления или команды rm, которую можно использовать для удаления установленных пакетов. Единственное, что нужно иметь в виду, это то, что ссылка должна быть удалена глобально - --globalнеобходимо предоставить флаг.

Чтобы удалить глобально связанный fooпакет, можно использовать следующую команду (используя sudoпри необходимости, в зависимости от ваших настроек и разрешений)

sudo npm rm --global foo

Это приведет к удалению пакета.

Чтобы проверить, установлен ли пакет, npm lsможно использовать команду:

npm ls --global foo

5
Если вы не уверены в названии связанного пакета, вы также можете сделать npm ls --global --depth 0список всех ваших зависимостей верхнего уровня
schu34

1
Это не сработало для меня из-за проблем с разрешением, даже с sudo. Я создал отсутствующий каталог с помощью фиктивного поля package.jsonс полем nameand version( nameдолжно совпадать с именем пакета, versionможет быть любым). Внутри этой папки я побежал, npm link && npm unlinkи это сработало.
Сильвенон

npm uninstallиз папки локальной библиотеки тоже будет работать.
обратная косая

132

Вы можете использовать, unlinkчтобы удалить символическую ссылку.

Например:

cd ~/projects/node-redis 
npm link                 
cd ~/projects/node-bloggy
npm link redis             # links to your local redis

Чтобы переустановить из вашего package.json:

npm unlink redis
npm install

https://www.tachyonstemplates.com/npm-cheat-sheet/#unlinking-a-npm-package-from-an-application


4
Разве не так unlinkже, как rmдля npm? Они имеют одну и ту же справочную страницу (с uninstall).
nwinkler

1
@nwinkler вы можете поделиться ссылкой?
Блэр Андерсон

12
Исходный код npm использует rm, unlink, remove, r и un в качестве псевдонимов для удаления: github.com/npm/npm/blob/… - см. Строку 66ff.
nwinkler

Ссылка внизу этого ответа мертва для меня.
Лирон Яхдав

Не npm iудаляет все ссылки в любом случае?
Тойво Савен

19

npm link pain:

-Модуль имени gulp-task

Название проекта project-x


Вы хотите связать gulp-task :

1: Перейдите в каталог gulp-task, а затем сделайте npm linkэто, вставив ссылку на проект в ваши глобальные модули.

2: Зайдите в ваш проект project-x, затем npm installобязательно удалите текущий каталог node_modules


Теперь вы хотите удалить это безумие и использовать настоящее задание с гулем , у нас есть два варианта:

Вариант 1: отключить связь через npm:

1: Зайдите в ваш проект и сделайте npm unlink gulp-taskтак, чтобы удалить связанный установленный модуль

2: Перейдите в каталог gulp-task и выполните npm unlinkудаление символической ссылки. Обратите внимание, что мы не использовали название модуля

3: праздновать


Что, если это не сработало, проверьте, найдя свой глобально установленный модуль. Мое местоположение, ls -la /usr/local/lib/node_modules/если вы используете nvm, это будет другой путь


Вариант 2. Удалите символическую ссылку, как обычный гуру Linux

1: найдите ваши глобальные зависимости cd /usr/local/lib/node_modules/

2: удаление символической ссылки просто с помощью rmкоманды

rm gulp-task убедитесь, что у вас нет /в конце

rm gulp-task/ неправильно 🔥🚨

rm gulp-task ✔️


делая простой npm-unlinkудалил все пакеты в моем проекте.
cst1992

2

Если вы сделали что - то вроде случайно npm link-генератора веба - приложения после того, как вы изменили его, вы можете исправить это клонирование правильного генератора и ссылки , которые .

git clone https://github.com/yeoman/generator-webapp.git;
# for fixing generator-webapp, replace with your required repository
cd generator-webapp;
npm link;

0

«npm install» заменяет все зависимости в ваших установленных node_modules на «npm link» версиями из npmjs (указанными в вашем package.json)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.