Aujourd'hui le BlgDuWebdesign vous propose de découvrir une ressource Javascript qui vous permettra de mesurer le poid de chacune des dépendances de votre projet Node.js : Cost of modules

Mesurer pour pouvoir optimiser

Un des inconvénients des projets Node.js est le temps d'installation et le poids des dossiers des projets, souvent bien plus grands que pour les autres langages.

Bien sur, le fait que les dépendances soient à réinstaller à chaque projet, et ce directement dans le dossier du projet (si vous ne saviez pas ce que contenait votre dossier node modules, c'est ça) joue pour beaucoup dans cette impression : pour un projet Ruby par exemple, les gems sont souvent installées systeme-wide en développement, ce qui fait que l'impacte est moindre. Néanmoins il est aussi à noter que NPM reste rempli de ressources parfois mal nettoyées incluant bien plus de fichiers/dépendances que nécessaire, ce qui conduit à ces temps d'installation/déploiement pouvant se compter en minute.

Car on ne peut pas optimiser ce qu'il est impossible de mesurer, le développeur Siddharth Kshetrapal à créé un outil très simple, Cost of modules, permettant d'auditer chacune de ses dépendances pour avoir son poid et le nombre de ses propores dépendances personnelles.

Nouveau ! Trouvez un webdesigner sur le BlogDuWebdesign

Trouvez gratuitement le prochain talent qui réalisera votre projet ou rejoindra votre équipe.

Et si vous n'avez pas envie de checker régulièrement la taille de votre projet, le même développeur a créé un outil permettant de checker la taille du bundle de votre projet pour s'assurer qu'elle reste en dessous d'une limite que vous avez fixée : Bundlesize.

Installation et utilisation

L'installation de cost-of-modules se passe sans surprise, comme pour toutes les ressources node.

npm install -g cost-of-modules

Niveau utlisation, tappez simplement cost-of-modules dans votre cli et admirez le résultat. Attention, si comme moi vous utilisez yarn, il existe un flag pour ça, et la commande se retrouve donc être cost-of-modules –yarn

Pour ce qui est de BundleSize, Il vous faudra insérer la limite de poid de votre Bundle à ne pas dépasser dans votre package.json comme suit puis prévoir d'executer la commande "bundlesize" dans votre script de test.

{
  "name": "your cool library",
  "version": "1.1.2",
  "bundlesize": [
    {
      "path": "./dist.js",
      "maxSize": "3 kB"
    }
  ]
}