2016-12-25 37 views
0

我是構建系統的新手,所以我使用Github中的示例gulp文件作爲創建我自己的gulp文件的指南(進行了一些修改)。它很成功,但最近我注意到,無論何時sass或js文件中出現單個錯誤,gulp都會顯示一條錯誤消息,並且服務器(瀏覽器同步服務器)停止。Gulp服務器在sass或js文件中有任何錯誤時停止

Gulpfile.js

'use strict'; 

const gulp = require('gulp'); 
const sass = require('gulp-sass'); 
const uglify = require('gulp-uglify'); 
const concat = require('gulp-concat'); 
const autoprefixer = require('gulp-autoprefixer'); 
const browserSync = require('browser-sync'); 

gulp.task('styles',() => { 
    return gulp.src('assets/styles/sass/style.sass') 
    .pipe(sass({outputStyle: 'compressed'})) 
    .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4')) 
    .pipe(gulp.dest('assets/styles/')) 
    .pipe(browserSync.stream()); 
}); 

gulp.task('scripts',() => { 
    return gulp.src('assets/js/src/*.js') 
     .pipe(concat('main.js')) 
     .pipe(gulp.dest('assets/js/build')) 
     .pipe(uglify()) 
     .pipe(gulp.dest('assets/js/')) 
     .pipe(browserSync.stream()); 
}); 

gulp.task('serve', ['styles', 'scripts'],() => { 
    browserSync.init({ 
     server: { 
      baseDir: './' 
     }, 
     notify: false 
    }); 

    gulp.watch('assets/styles/sass/style.sass', ['styles']); 
    gulp.watch('assets/js/src/*.js', ['scripts']); 
    gulp.watch('index.html').on('change', browserSync.reload); 
}); 

gulp.task('default', ['serve']); 

有,我應該添加到styles任務的屬性或方法?

回答

1

大多數人似乎使用gulp-plumber爲此。我也會修改你的sass管道以包含錯誤報告ala

.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError)) 

如果你想查看你的sass錯誤報告。最後,我將'styles'和'scripts'中的browserSync.stream管道修改爲:

.pipe(browserSync.reload({ stream:true })); 
+0

非常感謝,哥們:) – jst16

相關問題