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);