Mam zadanie typu gulp, które próbuje przekonwertować pliki .scss na pliki .css (używając gulp-ruby-sass), a następnie umieścić wynikowy plik .css w tym samym miejscu, w którym znalazł oryginalny plik. Problem polega na tym, że ponieważ używam wzorca globalnego, niekoniecznie wiem, gdzie jest przechowywany oryginalny plik.
W poniższym kodzie próbuję użyć gulp-tap, aby uzyskać dostęp do strumienia i znaleźć ścieżkę do pliku bieżącego pliku, z którego został odczytany strumień:
gulp.task('convertSass', function() {
var fileLocation = "";
gulp.src("sass/**/*.scss")
.pipe(sass())
.pipe(tap(function(file,t){
fileLocation = path.dirname(file.path);
console.log(fileLocation);
}))
.pipe(gulp.dest(fileLocation));
});
Na podstawie wyniku działania console.log(fileLocation)
tego kodu wydaje się, że powinien działać dobrze. Jednak wynikowe pliki CSS wydają się być umieszczone o jeden katalog wyżej, niż się spodziewam. Gdzie powinno być project/sass/partials
, wynikowa ścieżka do pliku to po prostu project/partials
.
Jeśli istnieje znacznie prostszy sposób na zrobienie tego, na pewno doceniłbym to rozwiązanie jeszcze bardziej. Dzięki!
sass
folderze?