11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je cherche à factoriser un code javascript redondant. Je pense que c'est possible mais mon niveau actuel ne me permet pas de savoir par quel bout l'aborder :
// Gulpfile.js

gulp.task('watchjade', function() {
  return gulp.watch(
        source + '/**/*.jade',
        gulpsync.sync(['jade', 'reload'])
    )
    .on('change', function(event) {
      console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
    });
});

gulp.task('watchmarkdown', function() {
  return gulp.watch(
        source + '/**/*.md',
        gulpsync.sync(['markdown', 'reload'])
    )
    .on('change', function(event) {
      console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
    });
});

gulp.task('watchscripts', function() {
  return gulp.watch(
        inputScripts,
        gulpsync.sync(['scripts', 'reload'])
    )
    .on('change', function(event) {
      console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
    });
});

gulp.task('watchstyles', function() {
  return gulp.watch(
        source + '/Styles/**/*.styl',
        gulpsync.sync([['styles', 'stylesexp'], 'reload'])
    )
    .on('change', function(event) {
      console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
    });
});

Comme vous le voyez il s'agit de cette partie du code :
    .on('change', function(event) {
      console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
    });

J'ai pensé à tout mettre dans une fonction, mais je ne sais comment m'y prendre... Smiley decu

Merci pour vos éclairages.
Modifié par Olivier C (27 Nov 2015 - 18:46)
Salut,

Ca na t'aidera pas des masses, mais tu peux déjà réduire un poil ainsi:

var oLog = function(oEvent) {
console.log('File ' + oEvent.path + ' was ' +oEvent.type + ', running tasks...');
};

gulp.task('watchjade', function() {
  return gulp.watch(
        source + '/**/*.jade',
        gulpsync.sync(['jade', 'reload'])
    )
    .on('change', oLog(event));
});
gulp.task('watchmarkdown', function() {
  return gulp.watch(
        source + '/**/*.md',
        gulpsync.sync(['markdown', 'reload'])
    )
    .on('change', oLog(event));
});


Je ne connais ni Gulp, et n'ai pas testé mon code ...

Il doit y avoir surement un moyen d'assigner ce "change" event au l'action "watch" de gulp ...
Bonjour Super_baloo8,

Le code proposé n'a pas fonctionné mais m'a mis sur la voie et j'ai trouvé la solution. Voici mon code final :
var consoleLog = function(event) {
      console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
    };

gulp.task('watchjade', function() {
  return gulp.watch(
        source + '/**/*.jade',
        gulpsync.sync(['jade', 'reload'])
    )
    .on('change', consoleLog);
});

gulp.task('watchmarkdown', function() {
  return gulp.watch(
        source + '/**/*.md',
        gulpsync.sync(['markdown', 'reload'])
    )
    .on('change', consoleLog);
});

gulp.task('watchscripts', function() {
  return gulp.watch(
        inputScripts,
        gulpsync.sync(['scripts', 'reload'])
    )
    .on('change', consoleLog);
});

gulp.task('watchstyles', function() {
  return gulp.watch(
        source + '/Styles/**/*.styl',
        gulpsync.sync([['styles', 'stylesexp'], 'reload'])
    )
    .on('change', consoleLog);
});

Merci pour tout. Au plaisir de vous croiser à nouveau sur le forum.