Un descriptif de quelques modules NodeJS très sympa
Je résume ici les libs qui m'intéressent
- underscore.js ou loadash (au choix) : pour effectuer des sélections simples dans des objets JS.
- Moment : pour remplacer l'API date
- Kalendae : pour une lib de calendar qui marche bien
- Highcharts : pour faire des graphiques qui pètent
- NodeJS : qu'on ne présente plus pour faire des applis côté serveur avec du JS
Voici l'une de mes bonnes résolutions de l'année : faire des articles se servant de la mise en forme Markdown de mon Shaarli. Celui-ci sera la première partie - de ce qui je l'espère - sera d'une longue lignée.
NPM C'est quoi donc ?
NPM c'est d'abord un acronyme signifiant Node Package Manager ce que l'on peut traduire par "gestionnaire de package de Node JS".
Le fichier 'package.json' c'est quoi donc ?
Tout comme il existe chez Maven, un fichier pom.xml qui décrit un projet, il existe un fichier package.json qui fait la même chose en Node JS.
Ok donc dois-je me servir de NPM comme outil de build ?
Eh bien non, désolé. En réalité vous pourriez, cependant JavaScript étant ce qu'il est, l'écosystème bouge tellement vite que la norme à adopter c'est YARN.
Ok mais qu'est-ce que YARN aurait de plus que NPM et justifiant son usage ?
Pour comprendre cela, il faut comprendre ce que fait NPM
- NPM va d'une part gérer (c'est-à-dire télécharger et mettre à jour) vos dépendances et les dépendances de vos dépendances. Nous parlerons alors de *gestion transitive des dépendances.
- NPM est également en mesure d'exécuter des commandes que vous lui aurez indiquer. Cela vous permettre par exemple de transpiler une application, de la packager ou encore de la déployer.
Parfait mais qu'est-ce que ne fait pas NPM alors ?
Eh bien deux choses :
1) Il ne met rien en cache, c'est-à-dire que NPM va retélécharger encore et toujours chacune des librairies que vous avez utilisé dans vos projets ; contrairement à Maven qui stocke dans le répertoire
$HOME/.m2/repository
l'ensemble des librairies dont vous vous êtes servi au moins une fois.
2) Il gère votre build de manière séquentielle, ce qui est dommageable en termes de performances étant donné que nos processeurs sont tous multi-cœurs voire multi-cœurs et hyper-threads à ce jour.
Et YARN est une surcouche de NPM qui répond tout simplement à ces deux besoins.
Un tuto aurelia en français
Une lib JS pour faire des gradients animés
Des vidéos en fond d'écran en CSS et une lib JS
Un tuto sur Angular 2 (j'amorce ma migration vers cette techno, c'est décidé). Cela signifie aussi que je switcherai de JS vers TypeScript dans pas longtemps.
Une lib JS open-source pour faire des charts en responsive dans le navigateur
De TDD vers BDD une présentation faite en reveal.js (pas mal).
Faire des GUI web avec des apparition / disparitions d'éléments HTML en fonction du scroll.
Accès à DOM Tree
Une lib JS pour générer des charts façon HiCharts.hs mais en libre
Benchmark de lib JS
Trop trop bien ce hack.
L'avenir est à JavaScript. Un autre tuto sur les bases MongoDb
Un debugger de regexp qui permet de les visualiser sous forme d'arbre. Je relais le post.
Enregistrer des vidéos via sa webcam, en JS pour 3 Ko.
Les Web Workers de JS
Test de débit de ligne via un browser en pure HTML5 + JS. Parfait pour les mobiles (car pas de Java ou Flash).