Як видалити пакунок, встановлений за допомогою 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з nameі versionполя ( nameмає збігатися з ім'ям пакета, versionможе бути що завгодно). Всередині цієї папки я запустив, npm link && npm unlinkі вона працювала.
silvenon

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, від’єднання, видалення, r та un як псевдоніми для видалення: github.com/npm/npm/blob/… - див. Рядок 66ff.
nwinkler

Посилання внизу цієї відповіді для мене мертве.
Лірон Ягдав

Не npm iвидаляє всі посилання все одно?
Toivo Säwén

19

npm біль посилання:

-Значення назви модуля gulp-task

-Назв проекту проекту-x


Ви хочете пов’язати gulp-завдання :

1: Перейдіть до каталогу завдань gulp, тоді npm linkце буде символізувати проект до ваших глобальних модулів

2: Перейдіть до свого проекту project-x, тоді npm installобов'язково видаліть поточний каталог node_modules


Тепер ви хочете зняти це безумство і використати справжнє завдання gulp , у нас є два варіанти:

Варіант 1: Від’єднання через npm:

1: Перейдіть до свого проекту, і npm unlink gulp-taskце дозволить видалити пов'язаний встановлений модуль

2: Перейдіть до каталогу завдань gulp і виконайте npm unlinkвидалення символьного посилання. Зауважте, що ми не використовували назву модуля

3: святкувати


Що робити, якщо це не спрацювало, перевірте, знайшовши глобальний встановлений модуль. Моє місцезнаходження, ls -la /usr/local/lib/node_modules/якщо ви використовуєте nvm, це буде інший шлях


Варіант 2: Видаліть символьне посилання, як звичайний гуру Linux

1: знайдіть свої глобальні залежності cd /usr/local/lib/node_modules/

2: видалити symlink - це просто за допомогою rmкоманди

rm gulp-task переконайтеся, що у вас немає /в кінці

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

rm gulp-task ✔️


роблячи звичайну, npm-unlinkвидалили всі пакунки з мого проекту.
cst1992

2

Якщо ви зробили щось на кшталт випадково npm linkгенератора-webapp після того, як ви його змінили, ви можете виправити це, клонувавши правильний генератор і зв’язавши це .

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 (вказані у пакунку.json)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.