Jak odinstalować moduły NPM w węźle JS?

1129

Jak powszechnie wiadomo, każdy moduł npm można zainstalować poprzez uruchomienie prostego polecenia: npm install <module_name>.

Zainstalowałem kilka modułów, których już nie używam i chcę je po prostu usunąć. Mam kilka pytań na ten temat:

  • Czy mamy jakieś polecenie lub proces, aby odinstalować moduł z katalogu głównego (coś podobnego npm uninstall <module_name>), czy po prostu usuniemy pliki modułu?

  • Jak to wpływa na nas, jeśli zachowamy nieużywane moduły?

Manish Kumar
źródło
2
Jeśli chcesz usunąć wszystkie moduły npm, przejdź tutaj: stackoverflow.com/questions/9283472/...
daniel

Odpowiedzi:

1728

Polecenie jest po prostu npm uninstall <name>

Dokumenty Node.js https://npmjs.org/doc/ zawierają wszystkie polecenia, które musisz znać w npm.

Instalacja lokalna będzie w node_modules/katalogu twojej aplikacji. Nie wpłynie to na aplikację, jeśli moduł pozostanie tam bez odniesień do niego.

Jeśli usuwasz pakiet globalny, wszystkie aplikacje, do których się on odwołuje, ulegną awarii.

Oto różne opcje:

npm uninstall <name>usuwa moduł z, node_modulesale nie aktualizujepackage.json

npm uninstall <name> --saveusuwa go także od dependencieswpackage.json

npm uninstall <name> --save-devusuwa go także od devDependencieswpackage.json

npm uninstall -g <name> --save usuwa również globalnie

Menztrual
źródło
19
spróbuj tego, npm -g ls | grep -v 'npm@' | awk '/@/ {print $2}' | awk -F@ '{print $1}' | xargs npm -g rmaby odinstalować wszystkie poprawnie zainstalowane moduły. jeśli jesteś w systemie Windows, musisz zainstalować Cygwin lub git, aby go uruchomić
Nur Rony
198
Kilka wskazówek: npm uninstall <name>usuwa moduł z node_modules, ale nie package.json. Czy npm uninstall <name> --saverównież usunąć zależność z pliku package.json. Wykonaj, npm -g uninstall <name> --saveaby usunąć zależność globalnie.
Raine Revere
1
W celu odinstalowania wszystkich modułów globalnych: stackoverflow.com/questions/5926672/... I usuń folder node_modules W celu odinstalowania wszystkich modułów lokalnych usuń lokalny folder w
module node_modules
1
Próbowałem usunąć [email protected] za pomocą wszystkich poleceń wymienionych powyżej, i nadal tam jest
Steve Staple
20
npm uninstall <name> now removes the module from both package.json` andnode_modules
philip oghenerobo balogun
86

Jeśli to nie działa, npm uninstall <module_name>wypróbuj globalnie, pisząc -g.

Może po prostu musisz to zrobić jako superUser / administrator z sudo npm uninstall <module_name>.

fuma
źródło
4
-gjest pomocne, jeśli istnieje npm WARN uninstall.
Lorem Ipsum Dolor
49

Cóż, aby udzielić pełnej odpowiedzi na to pytanie, istnieją dwie metody : (na przykład nazywamy zainstalowany moduł jako moduł1)

  1. Aby usunąć moduł1 bez zmiany pliku package.json:

    npm uninstall module1

  2. Aby usunąć moduł1 ze zmianą pliku package.json i usunięciem go z zależności w pakiecie.json:

    npm uninstall --save module1

Uwaga: aby uprościć wyżej wymienione polecenia, możesz użyć -S zamiast --save i możesz użyć remove , rm , r , un , unlink zamiast odinstalować

Ehsan
źródło
Dla zachowania kompletności należy zachować ostrożność, aby usunąć globalną lub lokalną zależność. Dla globali użyj -g z powyższym! Ponadto: W celu odinstalowania wszystkich modułów globalnych: stackoverflow.com/questions/5926672/... I usuń folder node_modules W celu odinstalowania wszystkich modułów lokalnych usuń lokalny folder
node_modules
28

Po prostu domyślnie instaluję rysik pod moim domowym katalogiem, więc po prostu npm uninstall stylusgo odłączam, lub możesz wypróbować npm rm <package_name>.

GrahamLe
źródło
17

Aby odinstalować moduł węzła:

npm uninstall <module_name>  

Spowoduje to usunięcie modułu z modułów node_modules, ale nie z pliku package.json. Więc kiedy wykonamy ponownie npm zainstaluj moduł.

Aby usunąć moduł z package.json, użyj:

npm uninstall <module_name> --save  

Spowoduje to również usunięcie zależności z pliku package.json.

A jeśli chcesz odinstalować dowolny moduł globalny, którego możesz użyć:

npm -g uninstall <module_name> --save 

Spowoduje to usunięcie zależności na całym świecie.

Wisznu Miszra
źródło
@WernerHenze Kiedy w 2016 r. Udzieliłem odpowiedzi 2016, brakowało jakiegoś globalnego modułu odinstalowującego!
Visnu Mishra
7

Aby usunąć pakiety node_modules/zbiorczo, możesz je również usunąć package.json, zapisać, a następnie uruchomić npm prunena terminalu.

Spowoduje to usunięcie tych pakietów, które istnieją w systemie plików, ale nie są używane / deklarowane package.json .

PS> Jest to szczególnie przydatne w systemie Windows, ponieważ często mogą wystąpić problemy z niemożnością usunięcia niektórych plików z powodu „przekroczonego limitu długości ścieżki”.

indygo
źródło
6

Przekonałem się o tym na własnej skórze, nawet jeśli na pozór oczywiste.

Początkowo próbowałem zapętlić przez katalog node_modules działający npm uninstall module-namez prostą pętlą for w skrypcie. Odkryłem, że to nie zadziała, jeśli nazwiesz pełną ścieżkę, np

npm uninstall module-name

działał, ale

npm uninstall /full/path/to/node_modules/module-name 

nie działał.

kayleeFrye_onDeck
źródło
5

Możesz także uruchomić następujące skrócone:

npm un packageName lub npm rm packageName

Uwaga: Dodaj -gna końcu polecenia, aby odinstalować pakiety globalne.

Mwiza
źródło
4

Czasami npm uninstall -g packageName działa.

W takim przypadku możesz usunąć pakiet ręcznie.

Na komputerze Mac przejdź do folderu /usr/local/lib/node_modulesi usuń folder z żądanym pakietem. Otóż ​​to. Za pomocą tego polecenia sprawdź listę globalnie zainstalowanych pakietównpm list -g --depth=0

Nastro
źródło
Ciekawe, dlaczego „npm odinstaluj -g nazwa_pakietu” nie działa w niektórych przypadkach?
Mwiza
ponieważ jest to ogromny błędny kod ... naprawdę trudno jest dostosować się do każdej wersji systemu operacyjnego. Myślę, że to jest powód
Nastro
3

Użytkownicy systemu Windows - jeśli chcesz usunąć wszystkie moduły węzłów zainstalowane jednocześnie:

  • Otwórz PowerShell
  • Wejdź do folderu node_modules (cd node_modules)
  • Uruchom to polecenie - „odinstaluj npm (Get-ChildItem) .Name”

Odinstaluje wszystkie moduły.

Manish Kumar
źródło
3

Zaktualizuj npm 5:

Od npm 5.0.0 , zainstalowane / odinstalowane moduły są domyślnie dodawane / usuwane, więc opcja --save nie jest już potrzebna.

biegać

npm uninstall <package>

na przykład:

npm uninstall mongodb

Spowoduje to również usunięcie modułu z folderu node_modules i pliku package.json

kodemirror
źródło
1
Prawdziwe; jeśli chcesz, aby stare domyślne zachowanie (pozostawiając pakiet.json pozostało niezmienione), użyj flagi --no-save flag docs.npmjs.com/cli/install
Marcus
2

Ta uninstallopcja nie działała dla mnie, gdy próbowałem użyć tego samego polecenia, którego użyłem podczas instalacji (ponieważ instalowałem przy użyciu@latest dyrektywą)

Na przykład zainstalowałem taki pakiet:

npm install  @ngtools/webpack@latest

A potem chciałem go odinstalować, więc użyłem tego samego polecenia (w tym @latest)

npm uninstall  @ngtools/webpack@latest

Więc powyższe odinstalowanie nie działało, muszę usunąć @latesti wtedy działało dobrze

npm uninstall  @ngtools/webpack

mam nadzieję, że to pomoże

Ahmed Elkoussy
źródło
1
# login as root (might be required depending on install)
su - 
# list all global packages
npm ls -g --depth=0
# list all local (project) packages
npm ls -p --depth=0
# remove all global packages
npm ls -g --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
# remove all local packges
npm ls -p --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -p rm

# NOTE (optional): to use node with sudo you can add the bins to /usr/bin
# NOTE $PATHTONODEINSTALL is where node is installed (e.g. /usr/local/node)
sudo ln -s $PATHTONODEINSTALL/bin/node /usr/bin/node
sudo ln -s $PATHTONODEINSTALL/bin/npm /usr/bin/npm
snassr
źródło
1

Najprostszym rozwiązaniem jest:

npm uninstall packageName --save-dev

Zobacz nazwy pakietów wyższego poziomu w swoim projekcie:

npm list --depth=0

Dane wyjściowe będą wyglądać następująco:

app@0.1.0 /home/jackkobec/projects/myAppName
├── packageName@packageVersion
├── express@4.16.4

Skopiuj nazwę pakietu i uruchom polecenie odinstalowania npm. Przykład dla przesyłki ekspresowej:

npm uninstall express --save-dev
Jackkobec
źródło
1

Aby odinstalować moduł za pomocą npm, możesz użyć:

npm uninstall moduleName

Ponadto, jeśli chcesz odinstalować i chcesz, aby zmiana została odzwierciedlona w pliku package.json, możesz użyć flagi --save, w następujący sposób:

npm uninstall moduleName --save
OR
npm uninstall -S

A jeśli chcesz odinstalować moduł z devDependencies i chcesz, aby zmiana została odzwierciedlona w pakiecie.json, możesz użyć flagi -D, w następujący sposób:

npm uninstall moduleName -D
Harshit Agarwal
źródło
1

Aby odinstalować moduł węzła:

npm uninstall <module_name>  

Spowoduje to usunięcie modułu z modułów node_modules, ale nie z pliku package.json.

Usuń moduł z użycia package.json za pomocą tego polecenia:

npm uninstall <module_name> --save 

Spowoduje to również usunięcie pliku package.json.

Slim Coder
źródło
0

Dodatkowo, jeśli zacząłeś używać yarn, zamiast npm:
yarn remove <package-name>

Jest odpowiednikiem:
npm uninstall <package-name> --save

Spowoduje to
- usunięcie pakietu package.json, a także
- odinstalowanie go z node-modulesfolderu projektu

SherylHohman
źródło
0

Posługiwać się

npm uninstall <package_name>

Przykład odinstalowania ekspresowego

npm uninstall express
Złupić
źródło
0

W przypadku systemu Windows uruchom CMD jako administrator i wpisz npm -g uninstall <package name>.

Osama Al-Banna
źródło
-2

Jeśli chcesz odinstalować kilka modułów, po prostu uruchom npm uninstall. Następnie przejdź do package.jsoni usuń niechciany moduł stamtąd, a następnie po prostu uruchom polecenie npm install. To powinno naprawić twój problem.

Tanumay Ghosh
źródło