Comment puis-je empêcher gulp-notify d'interrompre gulp-watch sous Windows ?
-
21-12-2019 - |
Question
J'utilise le gulp-notifier brancher.Ceci est un exemple de la façon dont je l'implémente dans un gulpfile.js (vous pouvez voir que j'utilise également gutil et livereload.Je ne sais pas s'ils jouent un rôle, mais faites-moi savoir s'ils le font.)
gulp.task('js', function() {
return gulp.src('./dev/scripts/*.coffee')
.pipe(coffee({bare: true}).on('error', gutil.log))
.pipe( gulp.dest('./build/js'))
.pipe(notify('Coffeescript compile successful'))
.pipe(livereload(server));
});
Ce plugin fonctionne sous OS X et Linux.Sous Windows, qui n'a pas de fonction de notification, il renvoie une erreur et interrompt le plugin gulp-watch.Voici un exemple de la configuration de gulp-watch :
gulp.task('watch', function () {
server.listen(35729, function (err) {
if (err) {
return console.log(err);
}
gulp.watch('./dev/scripts/*.coffee',['js']);
});
});
J'ai donc lu dans la documentation que le plugin gulp-pipe peut m'aider à ne pas interrompre gulp-watch sous Windows, mais je ne trouve pas d'exemple de la façon dont je pourrais l'utiliser dans une configuration comme celle-ci.
La solution
Vous pouvez utiliser le gulp-if
brancher en combinaison avec le os
module de nœud pour déterminer si vous êtes sous Windows, puis excluez gulp-notify
, ainsi:
var _if = require('gulp-if');
//...
// From http://stackoverflow.com/questions/8683895/variable-to-detect-operating-system-in-node-scripts
var isWindows = /^win/.test(require('os').platform());
//...
// use like so:
.pipe(_if(!isWindows, notify('Coffeescript compile successful')))