Réduisez et gérez le poids de vos projet Node.js

Le 28/08/2018

Dans Développement

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

Mesurer pour pouvoir optimiser

Parmi les inconvénients des projets Node.js on retrouve le temps d'installation et le poids des dossiers des projets, souvent bien plus importants que pour les autres langages.

Bien sûr, le fait que les dépendances soient à réinstaller à chaque projet, et ce directement dans le dossier du projet, 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'impact 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 minutes.

Comme on ne peut pas optimiser ce qui est impossible de mesurer, le développeur Siddharth Kshetrapal a créé un outil très simple, Cost of modules, permettant d'auditer chacune de ses dépendances pour avoir son poids et le nombre de ses propres dépendances personnelles.

Et si vous n'avez pas envie de vérifier régulièrement la taille de votre projet, le même développeur a créé un outil permettant de connaître la taille du bundle de votre projet pour s'assurer qu'elle reste en dessous d'une limite que vous avez fixé : 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, tapez simplement cost-of-modules dans votre cli et admirez le résultat.  Attention, si vous utilisez yarn, il existe un flag pour ça, et dans ce cas la commande est 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" } ] }