2016-05-19 20 views
7

Gulp ile browsersync kullanıyorum, belirli dosyalarda bazı görevler yürütüyorum. Ne zaman bir dosya kaydedersem, terminalime 10+ [BS] Reloading Browsers... ulaşıyorum ve performans anlaşılır bir şekilde laggy.Gulp Browsersync, her filechange ile birden fazla yeniden yüklemeye neden oluyor

gulp.task('bowerJS', function() { 
    gulp.src(lib.ext('js').files) 
    .pipe(concat('lib.min.js')) 
    .pipe(uglify()) 
    .pipe(gulp.dest('app/assets/js')); 
}); 

gulp.task('bowerCSS', function() { 
    gulp.src(lib.ext('css').files) 
    .pipe(concat('lib.min.css')) 
    .pipe(gulp.dest('app/assets/css/')); 
}); 


// Compile sass into CSS & auto-inject into browsers 
gulp.task('less', function() { 
    gulp.src('./app/css/*.less') 
     .pipe(less()) 
     .pipe(autoprefixer({ 
      browsers: ['last 2 versions'], 
      cascade: false 
     })) 
     .pipe(gulp.dest('app/assets/css')) 
     .pipe(browserSync.stream()); 
}); 

// Render Jade templates as HTML files 

gulp.task('templates', function() { 
    gulp.src('views/**/*.jade') 
    .pipe(jade({ 
     pretty: true 
    })) 
    .pipe(gulp.dest('app/src/')) 
}); 

gulp.task('php', function() { 
    php.server({ base: 'app', port: 8123, keepalive: true}); 
}); 
gulp.task('serve', ['bowerJS', 'bowerCSS', 'less', 'templates', 'php'], function() { 


    var proxyOptions1 = url.parse('http://some-site:1234'); 
     proxyOptions1.route = '/api/hi'; 

    browserSync({ 
     port: 8999, 
     proxy: '127.0.0.1:8123', 
     middleware: [ 
       proxy(proxyOptions1), 
       history() 
     ], 
     notify: false 
    }); 


    gulp.watch("app/assets/css/*.less", ['less']); 
    gulp.watch("app/**/*.html").on('change', browserSync.reload); 
    gulp.watch("app/assets/js/*.js").on('change', browserSync.reload); 
    gulp.watch("views/**/*.jade", ['templates']); 
}); 

yanlış Burada ne işim: Burada

benim gulpfile nelerdir?

cevap

8

kullanımı sadece browserSync.stream (daha sonra browserSync.reload değiştirin) ve bu should çalışıyor bu

browserSync.stream({once: true}) 

gibi seçenek once: true geçmektedir.

+2

veya filtreleme seçenek bakmak: [buradan] (https://www.browsersync.io/docs/options#option-reloadDebounce) –

0

Chokidar'daki awaitWriteFinish seçeneği benim için düzeltdi.

Örnek:

browserSync.init({ 
    server: dist.pages, 
    files: dist.css + '*.css', 
    watchOptions: { 
     awaitWriteFinish : true 
    } 
}); 
İlgili konular