node.js - node - npm update
Comando npm para desinstalar o eliminar paquetes no utilizados en Node.js (3)
Puede usar npm-prune para eliminar paquetes extraños.
npm prune [[<@scope>/]<pkg>...] [--production] [--dry-run] [--json]
Este comando elimina los paquetes "extraños". Si se proporciona un nombre de paquete, solo se eliminarán los paquetes que coincidan con uno de los nombres proporcionados.
Los paquetes extraños son paquetes que no aparecen en la lista de dependencias del paquete principal.
Si se especifica el indicador de producción o si la variable de entorno NODE_ENV se establece en producción , este comando eliminará los paquetes especificados en sus DevDependencies . La configuración de --no-production anulará que NODE_ENV se configure en producción .
Si se usa el indicador --dry-run , entonces no se harán cambios.
Si se utiliza el indicador --json , los cambios realizados por npm prune (o se habrían hecho con --dry-run ) se imprimen como un objeto JSON.
En la operación normal con los bloqueos de paquetes habilitados, los módulos extraños se eliminan automáticamente cuando se instalan los módulos y solo necesitará este comando con el indicador de producción .
Si ha deshabilitado los bloqueos de paquetes, los módulos extraños no se eliminarán y usted puede 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 hacia arriba en el á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 [email protected]
| `-- [email protected]
`-- d <-- depends on c@~1.0.9
`-- [email protected]
En este caso, npm-dedupe transformará el árbol a:
a
+-- b
+-- d
`-- [email protected]
Debido a la naturaleza jerárquica de la búsqueda del módulo del nodo, b y d obtendrán su dependencia en el paquete c en el nivel raíz del árbol.
El algoritmo de deduplicación recorre el árbol y mueve cada dependencia lo más arriba posible del árbol, incluso si no se encuentran duplicados. Esto resultará en un árbol plano y deduplicado.
¿Hay una manera de simplemente desinstalar todas las dependencias no utilizadas (no declaradas) de un proyecto Node.js (las que ya no están definidas en mi package.json
)? Cuando actualizo mi aplicación, me gustaría que los paquetes sin referencia se eliminen automáticamente.
Ejecute npm prune
para descomponer módulos no listados en package.json
.
Desde npm help prune
:
Este comando elimina los paquetes "extraños". Si se proporciona un nombre de paquete, solo se eliminarán los paquetes que coincidan con uno de los nombres proporcionados.
Los paquetes extraños son paquetes que no aparecen en la lista de dependencias del paquete principal.
Si se especifica el indicador --production, este comando eliminará los paquetes especificados en sus devDependencies.
Si no está preocupado por un par de minutos para hacerlo, una solución sería rm -rf node_modules
y npm install
nuevo para reconstruir los módulos locales.