È possibile utilizzare npm-prune per rimuovere i pacchetti estranei.
npm prune [[<@scope>/]<pkg>...] [--production] [--dry-run] [--json]
Questo comando rimuove i pacchetti "estranei". Se viene fornito un nome di pacchetto, vengono rimossi solo i pacchetti che corrispondono a uno dei nomi forniti.
I pacchetti estranei sono pacchetti che non sono elencati nell'elenco delle dipendenze del pacchetto padre.
Se viene specificato il flag --production o la variabile d'ambiente NODE_ENV è impostata su produzione , questo comando rimuoverà i pacchetti specificati in devDependencies . L'impostazione di --no-production negherà NODE_ENV essere pronto per la produzione .
Se la comando --dry-run viene utilizzato il flag , allora non verranno apportate modifiche.
Se il --json viene utilizzata bandiera poi la cambia prugna NPM apportato (o sarebbero state apportate con --dry-run ) vengono stampate come oggetto JSON.
Nel normale funzionamento con i pacchetti bloccati abilitati, i moduli estranei vengono eliminati automaticamente quando i moduli sono installati e sarà necessario questo comando solo con flag --production .
Se hai disabilitato i blocchi dei pacchetti, i moduli estranei non verranno rimossi e spetta a te eseguire npm prune di volta in volta per rimuoverli.
Utilizzare npm-dedupe per ridurre la duplicazione
npm dedupe
npm ddp
Ricerca nella struttura dei pacchetti locale e tenta di semplificare la struttura generale spostando le dipendenze più in alto nella struttura, dove possono essere condivise in modo più efficace da più pacchetti dipendenti.
Ad esempio, considera questo grafico delle dipendenze:
a
+-- b <-- depends on c@1.0.x
| `-- c@1.0.3
`-- d <-- depends on c@~1.0.9
`-- c@1.0.10
In questo caso, npm-dedupe trasformerà l'albero in:
a
+-- b
+-- d
`-- c@1.0.10
A causa della natura gerarchica della ricerca del modulo del nodo, b e d otterranno entrambi la loro dipendenza soddisfatta dal singolo pacchetto c a livello di radice dell'albero.
L'algoritmo di deduplicazione percorre l'albero, spostando ogni dipendenza il più in alto possibile nell'albero, anche se non vengono trovati duplicati. Ciò si tradurrà in un albero piatto e deduplicato.
node_modules
quando vengono rimosse dalle rispettivepackage.json
?