У меня есть многоуровневая структура в моем каталоге app/assets/sass /, который я пытаюсь отразить в выходных файлах CSS в public/css/
, но все * .scss-файлы в моем sass каталог и подкаталоги помещаются в корневую папку public/css/
.Структура каталогов входных файлов, сглаженных на выходе
Вот мой gulpfile: Когда я закомментируйте строки между gulp.src(sassDir ...)
и .pipe(gulp.dest('public/css'));
поддерживается структура каталогов, но пререкаться не компилируется. Разоблачение строки .pipe(sass(...))
воспроизводит эту проблему.
var gulp = require('gulp');
var plumber = require('gulp-plumber');
var gutil = require('gulp-util');
var minifycss = require('gulp-minify-css');
var autoprefixer = require('gulp-autoprefixer');
var sass = require('gulp-ruby-sass');
var coffee = require('gulp-coffee');
var sassDir = 'app/assets/sass/';
var coffeeDir = 'app/assets/coffee/';
gulp.task('sass', function() {
return gulp.src(sassDir + '**/*.scss', { base: sassDir })
.pipe(plumber())
.pipe(sass({ style: 'compress' }).on('error', gutil.log))
.pipe(autoprefixer('last 10 versions'))
.pipe(minifycss())
.pipe(gulp.dest('public/css'));
});
gulp.task('coffee', function() {
return gulp.src(coffeeDir + '**/*.coffee', { base: coffeeDir })
.pipe(plumber())
.pipe(coffee({ bare: true }).on('error', gutil.log))
.pipe(gulp.dest('public/js/coffee)'));
});
gulp.task('watch', function() {
gulp.watch(sassDir + '/**/*.scss', ['sass']);
gulp.watch(coffeeDir + '/**/*.coffee', ['coffee']);
});
gulp.task('default', ['sass', 'coffee', 'watch']);
Я написал ответ на этот вопрос. Посмотрите: http://stackoverflow.com/a/33741640/2140095 – brnmonteiro