Dans l'écosystème du développement Web, l'incontournable Node Package Manager est l'outil de gestion des dépendances le plus naturel lorsque que l'on démarre un projet JavaScript.
Et on y adjoint souvent un orchestrateur gérant les taches de packaging (Gulp, Grunt, etc.). Avec les "bundlers" (Webpack, Browserify) de plus en plus fourni en fonctionnalités (minification, versioning...), la question du rôle de ces orchestrateurs se pose car il ne se résume alors qu'en l'exécution de simples macro-commandes.
Package.json : des macro-commandes avec l'entrée "scripts"
L'entrée "scripts" permet de définir un ensemble de commandes spécifiques. La fonctionnalité "run" permet alors de lancer ces commandes ayant accès aux exécutables système mais également ceux installés localement (node_modules).
Exécutable système
> npm run print;
=> 1
Exécutable locale
> npm run clean;
=> suppression du dossier dist
En supplément, il est également possible d'utiliser les alias définis.
Voilà ! Plus besoin de maintenir ces processus dans les fichiers de configuration Grunt ou encore Gulp; intéressant sur des builds de faible ou moyenne complexité.