web-dev-qa-db-fra.com

Comment voir la taille des paquets npm?

Lorsque je recherche des packages sur NPM, j'aimerais connaître la taille des packages (en Ko ou en Mo, etc.). NPM ne semble pas afficher cette information.

Comment puis-je déterminer la charge qu'un package NPM ajoutera à mon projet?

96
arielorvits

Ce que vous voulez probablement mesurer, c'est l'impact d'un package si vous deviez l'ajouter à votre bundle d'applications. La plupart des autres réponses estiment uniquement la taille des fichiers sources, ce qui peut être inexact en raison de commentaires en ligne, de noms de noms longs, etc.

Il y a un petit utilitaire que j'ai créé qui vous indiquera la taille min + gzippée du paquet après il rentrera dans votre paquet -

https://bundlephobia.com

127
Shubham Kanodia

Jetez un coup d'œil à ce projet coût des modules . C'est un paquet npm qui va lister la taille d'un paquet 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.

enter image description here

60
Liron Yahdav

J'ai créé un outil, taille de téléchargement npm , qui inspecte la taille de l'archive pour un paquet npm donné, y compris toutes les arches dans l'arborescence des dépendances.

download size of webpack

Dans l'image ci-dessus, la taille de Tarball est le fichier tar.gz du paquet, et la taille totale est la taille de toutes les archives. L'outil est assez basique, mais il fait ce qu'il dit.

Un outil cli est également disponible. Vous pouvez l'installer comme ceci:

npm i -g download-size

Et utilisez-le comme ceci:

$ download-size request
[email protected]: 1.08 MiB

Voici un démo asciinema .

Le code source est disponible sur Github: api , outil cli et client Web .

18
arve0

J'ai créé Package Phobia au début de cette année avec l'espoir d'obtenir les informations sur la taille du paquet dans npmjs.com et de suivre le gonflement du paquet au fil du temps.

https://packagephobia.now.sh

img

Ceci est conçu pour mesurer l'espace disque après avoir exécuté npm install pour des dépendances côté serveur telles que express ou des dépendances dev telles que jest.

Vous pouvez en savoir plus sur cet outil et d'autres outils similaires dans le fichier Lisez-moi ici: https://github.com/styfle/packagephobia


Remarque: bien que l'équipe npm ne souhaite pas modifier le site Web, elle envisage toutefois d'ajouter la taille installée à la cli. Voir RFC 1 pour plus d'informations.

13
styfle

Dans le cas où vous utilisez Webpack en tant qu’ensemble de modules, consultez:

Je recommande vraiment la première option. Il montre la taille dans treemap interactive. Cela vous aide à trouver la taille du paquet dans votre fichier fourni.

Webpack Bundle Analyzer

Les autres réponses de cet article vous indiquent 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.

11
Black

Essayez d'utiliser la taille du paquet .

yarn global add package-size

https://github.com/egoist/package-sizepackage-size npm

5
c01nd01r

Vous pouvez vérifier 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.

2
bkk

Si vous utilisez le code Visual Studio, vous pouvez utiliser une extension appelée Coût d'importation .

Cette extension affichera dans l'éditeur la taille du paquet importé. L'extension utilise webpack avec babili-webpack-plugin afin de détecter la taille importée.

2
kyw

Une méthode "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 réduit mais pas compressé, mais vous aurez une bonne idée de la taille relative des paquets lorsque vous comparez deux ou plus d'entre eux.

2
thoragio