Puede usar npm-prune para eliminar paquetes extraños.
npm prune [[<@scope>/]<pkg>...] [--production] [--dry-run] [--json]
Este comando elimina paquetes "extraños". Si se proporciona un nombre de paquete, solo se eliminan los paquetes que coinciden con uno de los nombres proporcionados.
Los paquetes extraños son paquetes que no figuran en la lista de dependencias del paquete principal.
Si el --production se especifica la bandera o NODE_ENV variable de entorno se establece en la producción , este comando eliminará los paquetes especificados en sus devDependencies . Configuración --no-producción negará NODE_ENV se establece en la producción .
Si se usa el indicador --dry-run , no se realizarán cambios.
Si se usa la bandera --json , los cambios realizados por npm prune (o que se habrían hecho con --dry-run ) se imprimen como un objeto JSON.
En funcionamiento normal con bloqueos de paquete habilitados, los módulos extraños se podan automáticamente cuando se instalan módulos y solo necesitará este comando con el indicador --production .
Si ha deshabilitado los bloqueos de paquetes, los módulos extraños no se eliminarán y depende de usted ejecutar npm prune de vez en cuando para eliminarlos.
Use npm-dedupe para reducir la duplicación
npm dedupe
npm ddp
Busca en el árbol de paquetes local e intenta simplificar la estructura general moviendo las dependencias más arriba del árbol, donde pueden ser compartidas de manera más efectiva por múltiples paquetes dependientes.
Por ejemplo, considere este gráfico de dependencia:
a
+-- b <-- depends on c@1.0.x
| `-- c@1.0.3
`-- d <-- depends on c@~1.0.9
`-- c@1.0.10
En este caso, npm-dedupe transformará el árbol en:
a
+-- b
+-- d
`-- c@1.0.10
Debido a la naturaleza jerárquica de la búsqueda de módulos del nodo, byd obtendrán su dependencia con el paquete c único en el nivel raíz del árbol.
El algoritmo de deduplicación recorre el árbol, moviendo cada dependencia lo más arriba posible en el árbol, incluso si no se encuentran duplicados. Esto dará como resultado un árbol plano y deduplicado.
node_modules
cuando se eliminan de las respectivaspackage.json
?