2014-10-07 14 views
12

Ho la sass compito seguente che compila app.scss-app.css e ricarica la pagina:Gulp: come creare un'attività che compila più file SASS?

gulp.task('sass', function() { 
    return gulp.src('./app/app.scss') 
    .pipe(sass()) 
    .pipe(gulp.dest('./app')) 
    .pipe(livereload()); 
}); 

ora, voglio compilare un altro file, vale a dire ui-toolkit.scss-ui-toolkit.css.

È questo il modo migliore per aggiornare l'attività?

gulp.task('sass', function() { 
    gulp.src('./ui-toolkit/ui-toolkit.scss') 
    .pipe(sass()) 
    .pipe(gulp.dest('./ui-toolkit')); 

    return gulp.src('./app/app.scss') 
    .pipe(sass()) 
    .pipe(gulp.dest('./app')) 
    .pipe(livereload()); 
}); 

risposta

20

Basta specificare glob(s) che corrispondono più file SCSS. Questi esempi presuppongono che si desidera salvare i risultati nella stessa directory del file sorgente.

Partite ogni file SCSS (in node_modules troppo):

gulp.task('sass', function() { 
    return gulp.src('./**/*.scss') 
    .pipe(sass()) 
    .pipe(gulp.dest('.')); 
}); 

Partite file SCSS in dirs specifici:

file
gulp.task('sass', function() { 
    return gulp.src('./{foo,bar}/*.scss') 
    .pipe(sass()) 
    .pipe(gulp.dest('.')); 
}); 

corrisponde solo specifici (opzione di base è necessario qui per il salvataggio in stessa directory del file sorgente):

gulp.task('sass', function() { 
    return gulp.src(['./foo/foo.scss', './bar/bar.scss'], { base: '.' }) 
    .pipe(sass()) 
    .pipe(gulp.dest('.')); 
}); 
+2

scusa per recuperare un vecchio post, ma sto ricevendo un errore quando provo a farlo, dove non dice tale file './foo/foo.scss,./bar/bar.scss' ... qualche idea? Anche se includo base, ottengo "OptionParser :: InvalidOption: opzione non valida: --base =" – binky

Problemi correlati