2015-03-31 2 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. Использование Webstorm 10 и окно терминала в среде IDE на Mac. Поэтому я не думаю, что это ваша машина. Пробежав прямо сейчас и добавив глотку, а также без глотки. Меньше работает нормально. Но когда у меня есть gulp-sass как devDep, это snafus и не работает. Может быть, сантехник только для Меньше. Попытайтесь удалить gulp-less и просто попробуйте с gulp-sass в моем devDep и посмотрите, работает ли это, но пришлось удалить пакет и удалить из package.json, чтобы заставить его работать. –

+0

Такая же проблема. Водопроводчик отлично работает с моими файлами JS, но ошибки Sass требуют перезапуска Gulp. – JeremyE

ответ

0

сантехник работает отлично дерзости в моей установке глотком.

Удалить return прежде чем глоток в вашей задаче. Вот что я исправил это для меня. Я не думаю, что это необходимо для любой задачи на данный момент.

В настоящее время имеются некоторые проблемы с ленивой загрузкой. Убедитесь, что вы используете обновленный gulp-sass и gulp-plumber с ленивой загрузкой, отключенной для плагинов с загрузкой gulp-load.

Также для вашей задачи sass попробуйте установить errLogToConsole: false, чтобы он не мешал водопроводчику. В любом случае, сантехник действительно лучший репортер.

0

Попробуйте добавить .pipe($.sass().on('error', $.sass.logError)) вместо .pipe($.sass()). Это сработало для меня!