2015-03-31 94 views
2

具有以下一飲而盡文件:一飲而盡,管道工不打尼斯一飲而盡,薩斯

var gulp = require("gulp"); 
var args = require("yargs").argv; 
var config = require("./gulp.config")(); 
var del = require("del"); 
var $ = require("gulp-load-plugins")({ lazy: true }); 

gulp.task("styles", ["clean-styles"], function() { 
    log("Compiling SASS ---> CSS"); 

    return gulp 
    .src(config.sass) 
    .pipe($.plumber()) 
    .pipe($.sass()) 
    .pipe($.autoprefixer({ browsers: ["last 2 version", "> 5%"] })) 
    .pipe(gulp.dest(config.temp)); 
}); 

gulp.task("clean-styles", function(done) { 
    var files = config.temp + "**/*.css"; 
    clean(files, done); 
}); 

gulp.task("sass-watcher", function() { 
    gulp.watch([config.sass], ["styles"]); 
}); 

function clean(path, done) { 
    log("Cleaning: " + $.util.colors.yellow(path)); 
    del(path, done); 
}; 

function log(msg) { 
    if (typeof (msg) == "object") { 
    for (var item in msg) { 
     if (msg.hasOwnProperty(item)) { 
      $.util.log($.util.colors.yellow(msg[item])); 
     } 
    } 
    } else { 
    $.util.log($.util.colors.yellow(msg)); 
    } 
}; 

的問題是,sass-watcher沒有完成的任務,這是gulp-plumber的全部意義,我相信。

當有在sass文件的編譯錯誤,流被停止使用此配置,以最少的錯誤信息:

如果我更改配置爲通知選項的區別社科院

return gulp 
    .src(config.sass) 
    .pipe($.plumber()) 
    .pipe($.sass({ errLogToConsole: true })) 
    .pipe($.autoprefixer({ browsers: ["last 2 version", "> 5%"] })) 
    .pipe(gulp.dest(config.temp)); 

任務已完成狀況良好,我得到了以下錯誤消息:

[15:50:22] [gulp-sass] error reading values after 10px on line 23 in  C:/Projects/ProjectName/sass/bootstrap-custom.scss 

我寧願錯誤由gulp-plumber處理,任何想法爲什麼它不與gulp-sass打好?

我是Windows機器的方式,並使用cmd prompt

+0

從你的代碼的外觀看到相同的東西,我從JP中走過相同的設置。在Mac上的IDE中使用Webstorm 10和終端窗口。所以我不認爲這是你的機器。現在通過嘖嘖稱讚,並添加了大嘴巴,以及不喝酒。較少工作正常。但是,當我有一口氣,作爲一個devDep snafus,並不起作用。也許水管工只是爲了少。試着去掉gulp-less,然後嘗試在devDep中使用gulp-sass,看看它是否有效,但是必須卸載軟件包並從package.json中刪除才能使其運行。 – 2015-04-21 22:21:54

+0

同樣的問題。水管工對我的JS文件工作正常,但Sass錯誤需要重新啓動Gulp。 – JeremyE 2015-06-10 07:03:00

回答

0

管道工工作正常,在我一飲而盡設置頂嘴的。

刪除return之前吞下你的任務。這是爲我修復的。我認爲在這一點上任何任務都是不必要的。

目前有一些延遲加載報告問題。驗證您是否正在使用已更新的gulp-sass和gulp-plumber,並關閉延遲加載以用於gulp-load-plugins。

同樣爲了您的無盡的任務嘗試設置errLogToConsole: false,以便它不干擾水管工。無論如何,水管工確實是更好的記者。

0

嘗試添加.pipe($.sass().on('error', $.sass.logError))而不是.pipe($.sass())。它爲我工作!