Charger les dépendances automatiquement

17 juin 2014 nakama

Développement

(Cet article a été écrit il y a très longtemps, dans une galaxie très très lointaine)

Utilisant Grunt et Gulp, vous utilisez plusieurs dépendances à la fois. Mais devoir les charger avec un bon vieux require …. c’est assez long et pas très beau !

Je vous propose de faire le chargement en automatique.

Pour cela, il faut charger la dépendance matchdep dans un premier temps.

npm install --save-dev matchdep

Ensuite la petite configuration

var gulp = require('gulp');
require('matchdep')
  .filterDev('gulp-*', './package.json')
    .forEach(function(module) {
       go = module.replace(/^gulp-/, '');
       go = camelCase(go);
      global[go] = require(module);
    });

function camelCase(input) {
    return input.toLowerCase().replace(/-(.)/g, function(match, group1) {
        return group1.toUpperCase();
    });
}

Le premier require sert à charger Gulp, ensuite on configure matchdep :

– il récupère les dépendances commençant par gulp- dans le fichier package.json
– pour chaque dépendance on fait une petite fonction
– on remplace gulp- par rien 🙂 exemple : gulp-minify-css => minify-css
– ensuite on fait appel à une autre fonction pour transformer minify-css => minifyCss (du CamelCase en un mot)
– et on termine en faisant le require de la dépendance dans la variable global

Par exemple, la dernière ligne pourrait donner : global[‘minifyCss’] = require(‘gulp-minify-css’)

Grâce à la variable global, vous pouvez ensuite utiliser votre dépendance facilement : minifyCss().

Et pour Grunt ? c’est quasiment la même chose.

require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
Mots-clés associés à cet article :

Retrouvez d'autres articles par catégories