Jak odinstalować pakiet zainstalowany przy użyciu łącza npm?


162

Podczas instalowania pakietu węzłów przy użyciu sudo npm linkkatalogu pakietu, jak mogę odinstalować pakiet po zakończeniu programowania?

npm linkinstaluje pakiet jako dowiązanie symboliczne w globalnej lokalizacji pakietu systemu („/ usr / local / lib”). Pozwala to na testowanie pakietu, jednocześnie rozwijając go, bez konieczności ciągłej instalacji.

Które polecenie npm muszę uruchomić, aby ponownie usunąć łącze?

Odpowiedzi:


166

Pakiet można odinstalować za pomocą tego samego polecenia uninstall lub rm, którego można użyć do usunięcia zainstalowanych pakietów. Jedyną rzeczą, o której należy pamiętać, jest to, że łącze musi zostać odinstalowane globalnie - --globalnależy podać flagę.

Aby odinstalować foopakiet połączony globalnie , można użyć następującego polecenia (w sudorazie potrzeby, w zależności od konfiguracji i uprawnień)

sudo npm rm --global foo

Spowoduje to odinstalowanie pakietu.

Aby sprawdzić, czy pakiet jest zainstalowany, npm lsmożna użyć polecenia:

npm ls --global foo

5
Jeśli nie jesteś pewien nazwy połączonego pakietu, możesz również zrobić npm ls --global --depth 0listę wszystkich swoich zależności najwyższego poziomu
schu34

1
To nie zadziałało dla mnie z powodu problemów z uprawnieniami, nawet z sudo. Utworzyłem brakujący katalog z atrapą package.jsonz polem namei version( namepowinno pasować do nazwy pakietu, versionmoże być cokolwiek). Wewnątrz tego folderu uruchomiłem npm link && npm unlinki zadziałało.
silvenon

npm uninstallz lokalnego folderu biblioteki również będzie działać.
ukośnik odwrotny

132

możesz użyć, unlinkaby usunąć łącze symboliczne.

Na przykład:

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

Aby ponownie zainstalować z pliku package.json:

npm unlink redis
npm install

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


4
Czy to nie unlinkto samo co rmdla npm? Dzielą tę samą stronę podręcznika (z uninstall).
nwinkler

1
@nwinkler czy możesz udostępnić link?
Blair Anderson

12
Kod źródłowy npm używa rm, unlink, remove, r i un jako aliasów do deinstalacji: github.com/npm/npm/blob/ ... - zobacz wiersz 66ff.
nwinkler

Link na dole tej odpowiedzi jest dla mnie martwy.
Liron Yahdav

Mimo to nie npm iusuwa wszystkich linków?
Toivo Säwén

19

ból łącza npm:

-Nazwa modułu gulp-task

-Nazwa projektu project-x


Chcesz połączyć zadanie gulp :

1: Przejdź do katalogu gulp-task, a następnie zrób npm linkto, aby utworzyć dowiązanie symboliczne do projektu z modułami globalnymi

2: Przejdź do projektu project-x, a następnie npm installupewnij się, że usunąłeś bieżący katalog node_modules


Teraz, gdy chcesz usunąć to szaleństwo i użyć prawdziwego łyka-zadania , mamy dwie opcje:

Opcja 1: Odłącz przez npm:

1: Przejdź do swojego projektu i zrób npm unlink gulp-taskto, aby usunąć podłączony zainstalowany moduł

2: Przejdź do katalogu gulp-task i zrób, npm unlinkaby usunąć dowiązanie symboliczne. Zauważ, że nie użyliśmy nazwy modułu

3: świętuj


A jeśli to nie zadziała, sprawdź, lokalizując globalnie zainstalowany moduł. Moja lokalizacja, ls -la /usr/local/lib/node_modules/jeśli używasz nvm , będzie to inna ścieżka


Opcja 2: Usuń łącze symboliczne jak zwykły guru Linuksa

1: zlokalizuj swoje globalne zależności cd /usr/local/lib/node_modules/

2: usunięcie łącza symbolicznego polega po prostu na użyciu rmpolecenia

rm gulp-task upewnij się, że nie masz /na końcu

rm gulp-task/ jest źle 🔥🚨

rm gulp-task ✔️


wykonanie zwykłego npm-unlinkusunięcia wszystkich pakietów w moim projekcie.
cst1992

2

Jeśli zrobiłeś coś takiego przypadkowo npm linkgeneratora-webapp po zmianie go można naprawić poprzez sklonowanie odpowiedniego generatora i łącząc to .

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” zastępuje wszystkie zależności w Twoich modułach node_modules zainstalowanych za pomocą „linku npm” wersjami z npmjs (określonymi w pliku package.json)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.