Sie können npm-prune verwenden , um überflüssige Pakete zu entfernen.
npm prune [[<@scope>/]<pkg>...] [--production] [--dry-run] [--json]
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.
Wenn das Flag --production angegeben oder die Umgebungsvariable NODE_ENV auf Produktion gesetzt ist , entfernt dieser Befehl die in Ihren devDependencies angegebenen Pakete . Wenn Sie --no-Production einstellen , wird NODE_ENV negiert, wenn die Produktion eingestellt wird .
Wenn der --dry-run verwendet wird, werden tatsächlich keine Änderungen vorgenommen.
Wenn das Flag --json verwendet wird, werden die Änderungen npm prune vorgenommen (oder mit --dry-run vorgenommen) ), als JSON-Objekt gedruckt.
Im normalen Betrieb mit aktivierten Paketsperren werden Fremdmodule automatisch entfernt, wenn Module installiert werden, und Sie benötigen diesen Befehl nur mit der --production Flag .
Wenn Sie Paketsperren deaktiviert haben, werden externe Module nicht entfernt, und es liegt an Ihnen, von Zeit zu Zeit npm prune auszuführen , um sie zu entfernen.
Verwenden Sie npm-dedupe, um die Duplizierung zu reduzieren
npm dedupe
npm ddp
Durchsucht den lokalen Paketbaum und versucht, die Gesamtstruktur zu vereinfachen, indem Abhängigkeiten weiter nach oben verschoben werden, wo sie von mehreren abhängigen Paketen effektiver gemeinsam genutzt werden können.
Betrachten Sie beispielsweise dieses Abhängigkeitsdiagramm:
a
+-- b <-- depends on c@1.0.x
| `-- c@1.0.3
`-- d <-- depends on c@~1.0.9
`-- c@1.0.10
In diesem Fall, transformiert npm-dedupe den Baum in:
a
+-- b
+-- d
`-- c@1.0.10
Aufgrund der hierarchischen Natur der Modulsuche des Knotens erhalten b und d ihre Abhängigkeit vom einzelnen c-Paket auf der Stammebene des Baums.
Der Deduplizierungsalgorithmus geht den Baum entlang und verschiebt jede Abhängigkeit so weit wie möglich im Baum nach oben, auch wenn keine Duplikate gefunden werden. Dies führt sowohl zu einem flachen als auch zu einem deduplizierten Baum.
node_modules
wenn sie aus den jeweiligen Ordnern entfernt wurdenpackage.json
?