2015-03-31 119 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())。它为我工作!