Détourner cette conversation parce que je voudrais signaler un outil qui permet de réclamer de l'espace libre sur votre machine. Apparemment node_modulesoccuper 21bg atm sur ma machine; npkillpeut vous aider à le faire ! [entrez la description de l'image ici ] ( i.stack.imgur.com/BKbyU.png )
Ahmad Alfy
Réponses:
181
Ce que vous voulez probablement mesurer, c'est l'impact d'un package si vous l'ajoutez à votre ensemble d'applications. La plupart des autres réponses estiment uniquement la taille des fichiers source, ce qui peut être inexact en raison de commentaires en ligne, de longs noms de var, etc.
Il y a un petit utilitaire que j'ai créé qui vous indiquera la taille min + gzippée du paquet une fois qu'il est entré dans votre paquet -
Un peu exagéré, il faut réinstaller tous vos modules avant le calcul. Mais fait le travail.
pdem
7
n'utilisez pas ce package - il crée un dossier d'artefacts appelé nodemodules.bak qui crée des effets secondaires horribles
Nth.gol
22
J'ai créé un outil, npm download size , qui inspecte la taille de l'archive tar pour un package npm donné, y compris toutes les archives tar de l'arborescence des dépendances. Cela vous donne une idée du coût (temps d'installation, espace disque, ressources d'exécution, audit de sécurité, ...) d'ajout de la dépendance à l'avance.
Dans l'image ci-dessus, la taille de Tarball est tar.gz du package, et la taille totale est la taille de toutes les tarballs. L'outil est assez basique, mais il fait ce qu'il dit.
Un outil cli est également disponible. Vous pouvez l'installer comme ceci:
J'ai créé Package Phobia au début de cette année avec l'espoir d'obtenir les informations sur la taille du paquet sur npmjs.com et de suivre également le gonflement des paquets au fil du temps.
Ceci est conçu pour mesurer l'espace disque après avoir exécuté npm installdes dépendances côté serveur comme expressou des dépendances de développement comme jest.
La "Taille Unpacked" (essentiellement Publish Size) est disponible sur le site Web npmjs.com avec "Total Files". Cependant, ce n'est pas une signification récursive qui npm installsera probablement beaucoup plus grande car un seul paquet dépend probablement de nombreux paquets (donc Package Phobia est toujours pertinent).
Il existe également un RFC en attente pour une fonctionnalité qui imprime ces informations à partir de l'interface de ligne de commande.
C'est génial, mais pourquoi ses résultats diffèrent-ils si nettement de ceux de la bundlephobie? Par exemple, comparez les résultats pour lodash.lowerfirst
Danyal Aytekin
2
@DanyalAytekin Parce qu'ils mesurent des choses différentes. Réponse courte: si vous recherchez un package frontal, utilisez BundlePhobia. Si vous recherchez un package back-end, utilisez PackagePhobia. Il y a plus de détails dans le readme si vous êtes intéressé.
styfle
16
Si vous utilisez webpack comme bundle de modules, jetez un œil à:
Je recommande vraiment la première option. Il montre la taille dans le treemap interactif. Cela vous aide à trouver la taille du package dans votre fichier groupé.
Les autres réponses de cet article vous montrent la taille du projet, mais vous n'utilisez peut-être pas toutes les parties du projet, par exemple avec le tremblement de l'arbre. D'autres approches pourraient alors ne pas vous montrer la taille exacte.
Si vous utilisez Visual Studio Code, vous pouvez utiliser une extension appelée Import Cost .
Cette extension affichera en ligne dans l'éditeur la taille du package importé. L'extension utilise webpack avec babili-webpack-plugin afin de détecter la taille importée.
Cette extension ne fonctionne pas pour tous les packages. Il montre Calculer ... puis disparaît soudainement même après avoir changé la valeur du délai d'expiration en un très grand nombre
shreyansh
2
Vous pouvez consulter npm-module-stats . C'est un module npm qui obtient la taille d'un module npm et ses dépendances sans installer ni télécharger le module.
Usage:
var stats = require("npm-module-stats");
stats.getStats("glob").then((stack) => {
let dependencies = Object.keys(stack);
let totalSize = dependencies.reduce((result, key, index) => {
return result + stack[key].size;
}, 0);
console.log('Total Size in Bytes ', totalSize);
console.log('Total Dependencies ', dependencies.length-1);
}).catch((err) => {
console.error(err);
});
Cela peut sembler un peu verbeux, mais cela résout le problème que vous avez décrit de manière appropriée.
Le téléchargement est minifié mais pas gzippé, mais vous avez une bonne idée de la taille relative des packages lorsque vous comparez deux ou plusieurs d'entre eux.
node_modules
occuper 21bg atm sur ma machine;npkill
peut vous aider à le faire ! [entrez la description de l'image ici ] ( i.stack.imgur.com/BKbyU.png )Réponses:
Ce que vous voulez probablement mesurer, c'est l'impact d'un package si vous l'ajoutez à votre ensemble d'applications. La plupart des autres réponses estiment uniquement la taille des fichiers source, ce qui peut être inexact en raison de commentaires en ligne, de longs noms de var, etc.
Il y a un petit utilitaire que j'ai créé qui vous indiquera la taille min + gzippée du paquet une fois qu'il est entré dans votre paquet -
https://bundlephobia.com
la source
https://cost-of-modules.herokuapp.com
dirige maintenant vershttps://bundlephobia.com
Un outil très utile btw.Jetez un œil à ce projet de coût des modules . C'est un package npm qui listera la taille d'un package et le nombre d'enfants.
Installation:
npm install -g cost-of-modules
Utilisation: exécutez
cost-of-modules
dans le répertoire dans lequel vous travaillez.la source
J'ai créé un outil, npm download size , qui inspecte la taille de l'archive tar pour un package npm donné, y compris toutes les archives tar de l'arborescence des dépendances. Cela vous donne une idée du coût (temps d'installation, espace disque, ressources d'exécution, audit de sécurité, ...) d'ajout de la dépendance à l'avance.
Dans l'image ci-dessus, la taille de Tarball est tar.gz du package, et la taille totale est la taille de toutes les tarballs. L'outil est assez basique, mais il fait ce qu'il dit.
Un outil cli est également disponible. Vous pouvez l'installer comme ceci:
Et utilisez-le comme ceci:
Le code source est disponible sur Github: api , outil cli et client web .
la source
J'ai créé Package Phobia au début de cette année avec l'espoir d'obtenir les informations sur la taille du paquet sur npmjs.com et de suivre également le gonflement des paquets au fil du temps.
https://packagephobia.com
Ceci est conçu pour mesurer l'espace disque après avoir exécuté
npm install
des dépendances côté serveur commeexpress
ou des dépendances de développement commejest
.Vous pouvez en savoir plus sur cet outil et d'autres outils similaires dans le readme ici: https://github.com/styfle/packagephobia
Mise à jour 2020
La "Taille Unpacked" (essentiellement Publish Size) est disponible sur le site Web npmjs.com avec "Total Files". Cependant, ce n'est pas une signification récursive qui
npm install
sera probablement beaucoup plus grande car un seul paquet dépend probablement de nombreux paquets (donc Package Phobia est toujours pertinent).Il existe également un RFC en attente pour une fonctionnalité qui imprime ces informations à partir de l'interface de ligne de commande.
la source
Si vous utilisez webpack comme bundle de modules, jetez un œil à:
Je recommande vraiment la première option. Il montre la taille dans le treemap interactif. Cela vous aide à trouver la taille du package dans votre fichier groupé.
Les autres réponses de cet article vous montrent la taille du projet, mais vous n'utilisez peut-être pas toutes les parties du projet, par exemple avec le tremblement de l'arbre. D'autres approches pourraient alors ne pas vous montrer la taille exacte.
la source
Essayez d'utiliser la taille du paquet .
https://github.com/egoist/package-size
la source
Si vous utilisez Visual Studio Code, vous pouvez utiliser une extension appelée Import Cost .
la source
Vous pouvez consulter npm-module-stats . C'est un module npm qui obtient la taille d'un module npm et ses dépendances sans installer ni télécharger le module.
Usage:
Cela peut sembler un peu verbeux, mais cela résout le problème que vous avez décrit de manière appropriée.
la source
Une manière "rapide et sale" consiste à utiliser curl et wzrd.in pour télécharger rapidement le paquet minifié, puis grep la taille du fichier:
curl -i https://wzrd.in/standalone/axios@latest | grep Content-Length
Le téléchargement est minifié mais pas gzippé, mais vous avez une bonne idée de la taille relative des packages lorsque vous comparez deux ou plusieurs d'entre eux.
la source
curl -i https://unpkg.com/[email protected]/dist/axios.min.js | grep Content-Length
howfat est un autre outil qui peut afficher la taille totale du paquet:
la source