簡體   English   中英

Gulp + Growl +瀏覽器同步通知

[英]Gulp + Growl + Browser-sync notification

我用口水和咆哮。 我創建了這個gulpfile.js

var gulp = require("gulp");
var less = require("gulp-less");
var notifier = require('node-notifier');
var notify = require("gulp-notify");
var browserSync = require('browser-sync').create();
var reload = browserSync.reload;

gulp.task('less', function() {
 var trete;
 console.log(trete);
 gulp.src('css/main.less')
 .pipe(less())
 .on('error', function(err){
    trete = err.message;
    notifier.notify({
        'title': 'My notification',
        'message': trete
    });
    return false;
})
.pipe(notify("Всё заебись!"))
.pipe(gulp.dest('css/'))
});

gulp.task('bs-reload', function () {
browserSync.reload();
});
gulp.task('browser-sync', function() {
browserSync.init(['css/*.css', 'js/*.js'], {
    server: {
        baseDir: './'
    }
});
});

gulp.task('watch', function() {
gulp.watch('css/**', ['less']);
gulp.run('less');
gulp.watch(['*.html'], ['bs-reload']);
});

gulp.task('default', ['less', 'browser-sync', 'watch']);

當我運行gulp時,咆哮顯示兩個通知,並且瀏覽器同步兩次重新加載頁面。 也許我做錯了什么?

您在“默認”任務中運行“較少”兩次。 它的第一個相關任務將運行,然后由於gulp.run而在“監視”任務中再次運行。

在“監視”任務中刪除gulp.run。

將“較少”添加為“監視”任務的從屬任務。

您可能希望流式傳輸樣式,而不是重新加載整個頁面,因此最后減少了傳遞。

.pipe(gulp.dest(cssPath))
.pipe(browserSync.stream());

您的任務不會返回其流,因此它們將永遠無法完成。 任務應始終返回流或接受完成的回調,並在異步的情況下對其進行調用。

var gulp = require("gulp");
var less = require("gulp-less");
var notifier = require('node-notifier');
var notify = require("gulp-notify");
var browserSync = require('browser-sync').create();
var reload = browserSync.reload;

gulp.task('less', function() {
    return gulp.src('css/main.less')
        .pipe(less())
            .on('error', function(err){
                notifier.notify({
                    'title': 'My notification',
                    'message': err.message
                });
                return false;
           })
       .pipe(notify("Всё заебись!"))
       .pipe(gulp.dest('css/'))
       .pipe(browserSync.stream());
});

gulp.task('browser-sync', ['less'], function() {
    browserSync.init({
        server: {
            baseDir: './'
        }
    });
});

gulp.task('watch', ['less'], function() {
    gulp.watch('css/**', 'less');
    gulp.watch('*.html').on('change', reload);
});

gulp.task('default', ['browser-sync', 'watch']);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM