it-swarm.com.de

Wie bereinige ich den Ordner node_modules von Paketen, die sich nicht in package.json befinden?

Angenommen, ich installiere Projektpakete mit npm install, das package.json nach zu installierenden Modulen durchsucht. Nach einer Weile sehe ich, dass ich kein bestimmtes Modul benötige und entferne dessen Abhängigkeit von package.json. Dann entferne ich einige andere Module aus package.json, weil sie nicht mehr benötigt werden und andere durch Alternativen ersetzt werden.

Jetzt möchte ich den Ordner node_modules bereinigen, sodass nur die in package.json aufgelisteten Module dort bleiben und der Rest gehen muss, so etwas wie npm clean. Ich weiß, dass ich sie manuell entfernen kann, möchte aber einige Nice-Funktionen bereithalten, um die Zuckerfunktionalität zu verwenden.

286
Sergei Basharov

Ich glaube du suchst npm Prune

npm Prune [<name> [<name ...]]

Dieser Befehl entfernt "fremde" Pakete. Wenn ein Paketname angegeben wird, werden nur Pakete entfernt, die mit einem der angegebenen Namen übereinstimmen.

Fremdpakete sind Pakete, die nicht in der Abhängigkeitsliste des übergeordneten Pakets aufgeführt sind.

Siehe die Dokumente: https://docs.npmjs.com/cli/Prune

363
David Sherret

Sie können den Ordner node_modules/entfernen und dann die Abhängigkeiten aus package.json neu installieren.

rm -rf node_modules/
npm install

Dies würde alle installierten Pakete im aktuellen Ordner löschen und nur die Abhängigkeiten von package.json installieren. Wenn die Abhängigkeiten bereits installiert wurden, wird npm versuchen, die zwischengespeicherte Version zu verwenden, um zu vermeiden, dass die Abhängigkeit ein zweites Mal heruntergeladen wird.

169
adamduren

Aufgrund der Ordnerverschachtelung kann Windows den Ordner nicht löschen, da sein Name zu lang ist. Um dies zu lösen, installieren Sie RimRaf:

npm install rimraf -g

rimraf node_modules
93
user3844078

Installieren Sie zuerst rimraf global

npm install rimraf -g

gehen Sie mit cmd zu dem Pfad, in dem sich Ihr node_modules-Ordner befindet, und wenden Sie den folgenden Befehl an

rimraf node_modules
20
Ankit Parmar

einfach nur laufen

rm -r node_modules

tatsächlich können Sie damit jeden Ordner löschen.

like rm -r AnyFolderWhichIsNotDeletableFromShiftDeleteOrDelete.

öffne einfach das gitbash verschiebe es in das Stammverzeichnis des Ordners und führe diesen Befehl aus

Hoffe das wird helfen.

19
Ajay Kotnala

Hast du schon npm prune ausprobiert?

es sollte alles deinstallieren, was nicht in Ihrer Paketdatei aufgeführt ist

https://npmjs.org/doc/cli/npm-Prune.html

Alternative Lösung zum Entfernen eines solchen Ordners für Windows-Benutzer: http://ask.osify.com/qa/567

Unter ihnen ist ein kostenloses Tool: Long Path Fixer gut zu versuchen: http://corz.org/windows/software/accessories) /Long-Path-Fixer-for-Windows.php

2
Osify

Entfernen/Bearbeiten Sie die Pakete, die in package-lock.json nicht benötigt werden (Paketnamen werden unter "Dependencies & DevDependencies" geschrieben) und dann

npm install

0
Fakrudeen

Ich habe ein paar Zeilen in package.json eingefügt:

"scripts": {
  ...
  "clean": "rmdir /s /q node_modules",
  "reinstall": "npm run clean && npm install",
  "rebuild": "npm run clean && npm install && rmdir /s /q dist && npm run build --prod",
  ...
}

Wenn Sie nur clean möchten, können Sie diesen rimraf node_modules oder rm -rf node_modules verwenden.

Es funktioniert gut

0
Amitesh Singh