2015-07-30 59 views
5

Sadece birisinin bana Gulp kurulumumda yardım edip edemeyeceğini merak ediyorum. Şu anda saat göreviyle birlikte gulp-sass ve gulp-scss-lint kullanıyorum. Olmak istediğim şey, bir scss dosyası, linting görevinin tamamen çalışması ve scss dosyalarının derlenmemesi ve saatin çalışmaya devam etmesi için herhangi bir hata veya uyarının atılmasıdır.Gulp - SCSS Lint - Lekeleme başarısız olursa SCSS'yi derleme

Şu anda bu hatalarla çalışıyorum ama yine de stil sayfalarını derleyen uyarılar ile çalışmıyor gibi görünüyor.

/// <binding ProjectOpened='serve' /> 
// Macmillan Volunteering Village Gulp file. 
// This is used to automate the minification 
// of stylesheets and javascript files. Run using either 
// 'gulp', 'gulp watch' or 'gulp serve' from a command line terminal. 
// 
// Contents 
// -------- 
// 1. Includes and Requirements 
// 2. SASS Automation 
// 3. Live Serve 
// 4. Watch Tasks 
// 5. Build Task 

'use strict'; 

// 
// 1. Includes and Requirements 
// ---------------------------- 
// Set the plugin requirements 
// for Gulp to function correctly. 
var gulp = require('gulp'), 
    notify = require("gulp-notify"), 
    sass = require('gulp-sass'), 
    scssLint = require('gulp-scss-lint'), 
    gls = require('gulp-live-server'), 

// Set the default folder structure 
// variables 
    styleSheets = 'Stylesheets/', 
    styleSheetsDist = 'Content/css/', 
    html = 'FrontEnd/'; 

// 
// 2. SASS Automation 
// ------------------ 
// Includes the minification of SASS 
// stylesheets. Output will be compressed. 
gulp.task('sass', ['scss-lint'], function() { 
    gulp.src(styleSheets + 'styles.scss') 
    .pipe(sass({ 
    outputStyle: 'compressed' 
    })) 
    .on("error", notify.onError(function (error) { 
    return error.message; 
    })) 
    .pipe(gulp.dest(styleSheetsDist)) 
    .pipe(notify({ message: "Stylesheets Compiled", title: "Stylesheets" })) 
}); 

// SCSS Linting. Ignores the reset file 
gulp.task('scss-lint', function() { 
    gulp.src([styleSheets + '**/*.scss', '!' + styleSheets + '**/_reset.scss']) 
    .pipe(scssLint({ 
    'endless': true 
    })) 
    .on("error", notify.onError(function (error) { 
    return error.message; 
    })) 
}); 

// 
// 3. Live Serve 
// ------------- 
gulp.task('server', function() { 
    var server = gls.static('/'); 
    server.start(); 

    // Browser Refresh 
    gulp.watch([styleSheets + '**/*.scss', html + '**/*.html'], function() { 
    server.notify.apply(server, arguments); 
    }); 
}); 

// Task to start the server, followed by watch 
gulp.task('serve', ['default', 'server', 'watch']); 


// 
// 4. Watch Tasks 
// -------------- 
gulp.task('watch', function() { 

    // Stylesheets Watch 
    gulp.watch(styleSheets + '**/*.scss', ['scss-lint', 'sass']); 
}); 

// 
// 5. Build Task 
// -------------- 
gulp.task('default', ['sass']); 

cevap

0

Juanfran, 2015 yılında GitHub'da bu soruyu yanıtladı. Görünüşe göre burada yeniden yayınlayacağım.

1) gulp-'u kullanarak istediğiniz herhangi bir koşulu ekleyebilirsiniz.

var sass = require('gulp-sass'); 
var gulpif = require('gulp-if'); 
var scssLint = require('gulp-scss-lint') 

gulp.task('lint', function() { 
    var condition = function(file) { 
     return !(file.scssLint.errors || file.scssLint.warnings); 
    }; 

    return gulp.src('**/*.scss') 
     .pipe(scssLint()) 
     .pipe(gulpif(condition, sass())); 
}); 

2) daha özel bir seçenek kullanmaktır Hata herhangi bir hata veya uyarı

gulp.task('scss-lint', function() { 
    return gulp.src('**/*.scss') 
     .pipe(scssLint()) 
     .pipe(scssLint.failReporter()); 
}); 

gulp.task('sass', ['scss-lint'], function() { 
    return gulp.src('**/*.scss') 
     .pipe(scss()); 
}); 
durumunda başarısız olacak muhabir