BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Gulp cherche à détrôner Grunt

Gulp cherche à détrôner Grunt

Favoris

La société Fractal qui a été très impliquée dans le développement de plusieurs modules Node.js très appréciés, vient de publier récemment gulp, un nouveau système de build qui essaye de remplacer Grunt comme task-runner Javascript le plus populaire.

D'après la documentation de gulp, cet outil cherche à couvrir les principales caractéristiques suivantes :

  • Simplicité d'utilisation : en préférant le code plutôt que la configuration, gulp garde les choses simples facile à réaliser et rend les tâches complexes abordables.
  • Efficacité : en exploitant la puissance des flux de node, vous obtenez des builds rapides qui n'écrivent pas les fichiers intermédiaires sur le disque.
  • Haute Qualité : les lignes directrices strictes de gulp assurent que les plugins restent simples et qu'ils fonctionnent comme vous l'attendez.
  • Simplicité d'apprentissage : grâce à une API réduite, vous pouvez apprendre gulp en peu de temps. Vos builds fonctionnent exactement comment vous l'imaginez : une suite de pipes de streaming.

Gulp tente de simplifier l'écriture des tâches en utilisant des flux et du code plutôt que de la configuration, c'est une approche qui peut être vue comme l'approche "jQuery" pour chainer des actions et créer des tâches de build. Les flux ont toujours été d'actualité depuis les premiers jours d'UNIX et sont une partie très importante de l'écosystème de Node.js, écrire pour gulp peut être ainsi considéré comme écrire pour Node.js. Tout en utilisant les flux, gulp se débarrasse des fichiers intermédiaires et seul le flux final est écrit sur le disque, ce qui rend tout le processus plus rapide. En préférant le code plutôt que la configuration, gulp garde les choses simples facile à réaliser et rend les tâches complexes abordables.

Comme n'importe quel système de gestion de tâches, chaque tâche peut être considérée comme une simple unité de travail.


var gulp = require('gulp'); 
var uglify = require('gulp-uglify');

gulp.task('scripts', function() {   
    return gulp
    .src(['src/js/**/*.js'])
    .pipe(uglify())
    .pipe(gulp.dest('build/js'));     
});

Ou avoir des dépendances vers d'autres tâches :


gulp.task('default-task', function(){
    gulp.run('scripts'); 
    // watch files and run scripts if they change 
    gulp.watch("./src/**/*.js", function(event { 
        gulp.run('scripts'); 
    });
);

En plus d'être plus verbeux, des réclamations au sujet de Grunt, soulignent que beaucoup de plugins font plus qu'ils ne devraient. Dans un blog, Mark Goodyear présente l'exemple de l'imagemin de Grunt, qui non seulement compresse les images mais utilise également la mise en cache. Selon lui, avec gulp la gestion du cache est un plugin complémentaire qui peut être utilisé par d'autres plugins, ce qui favorise la réutilisation.

Si on regarde l'activité du référentiel de code de gulp et le nombre de stargazers sur github, on peut voir que ce système de build commence à décoller. Il a déjà reçu beaucoup d'intérêts de la communauté JavaScript : Addy Osmani, le principal développeur de Yeoman, a enregistré une demande pour que l'équipe de Yeoman envisage gulp comme le remplaçant du système de build actuel. Sindre Sorhus, qui fait partie de l'équipe de Yeoman et principal contributeur de NPM, a écrit un blog sur gulp et il l'a référencé sur Twitter comme "Pensé comme Grunt, mais plus rapide et avec moins de configuration".

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT