2014-09-11 9 views
6

Mam kilka plików rysika w './styles/stylus/**.styl' i kilka plików CSS w './styles/css/**.css'.Gulp: Skompiluj rysik i połącz z czystym CSS

Jak używać Gulp do kompilowania plików rysika, konkatować wynik z wszystkimi plikami CSS i wyprowadzić je na numer './styles/out.css'?

Odpowiedz

8

Można użyć gulp-filter jak:

var gulp = require('gulp'); 
var stylus = require('gulp-stylus'); 
var concat = require('gulp-concat'); 
var Filter = require('gulp-filter'); 

gulp.task('css', function() { 

    var filter = Filter('**/*.styl', { restore: true }); 

    return gulp.src([ 
      './styles/stylus/**.styl', 
      './styles/css/**.css' 
     ]) 
     .pipe(filter) 
     .pipe(stylus()) 
     .pipe(filter.restore) 
     .pipe(concat('out.css')) 
     .pipe(gulp.dest('./styles')); 
}); 
3

powinien być w stanie utworzyć dwa oddzielne strumienie plików i połączyć je z event-stream:

var es = require('event-stream'); 

gulp.task('styles', function() { 
    var stylusStream = gulp.src('./styles/stylus/**.styl') 
    .pipe(stylus()); 

    return es.merge(stylusStream, gulp.src('./styles/css/**.css')) 
    .pipe(concat('out.css')) 
    .pipe(gulp.dest('./styles')); 
}); 
+0

Jest to najlepsze rozwiązanie, gdy trzeba dołączyć wiele starszych arkuszy stylów CSS i po prostu użycie '@require legacy/*' nie będzie działać, ponieważ globbingowy import działa tylko dla plików źródłowych **. Styl **. –

3

w plikach rysika, można po prostu @require Pliki CSS:

@require 'something.css' 

The n nie ma potrzeby konkatenacji lub jakiejkolwiek innej złożoności w Gulp, a kolejność ładowania plików jest jawnie ustawiona w plikach .styl.

+0

Należy tego przestrzegać. W niektórych przypadkach możemy potrzebować powyższego rozwiązania. – Yash

+0

Czy możesz rozwinąć to trochę? Nie wiem, jak to rozwiązuje problem ...? http://stackoverflow.com/users/223225/geoffrey-booth – MaxRocket

+0

Jeśli końcowym wynikiem jest jeden plik CSS zawierający zarówno pliki źródłowe .css, jak i .styl, można użyć obu plików rysika. W ten sposób istnieje tylko jedna ścieżka kompilacji: skompiluj rysik, bez konieczności łączenia/scalania plików później. –

0

Właśnie się doskonałym rozwiązaniem do tego: używać @require dla każdego z pozostałych plików .styl w pliku main.styl, i po prostu oglądać gulp.src („src/CSS/main.styl”)

Powiązane problemy