Задать вопрос
UnluckySerivelha
@UnluckySerivelha

Как создать папку для каждого обрабатываемого файла?

Есть директория src/scss/blocks, в ней может быть много .scss файлов. Хочу сделать так, чтобы каждый scss файл компилировался в css и помещался в одноименную директорию в директории blocks. Т.е. файл src/scss/blocks/header.scss должен скомпилироваться и поместиться в директорию blocks/header/header.css.

Сделал такой таск:
gulp.task('scss-blocks', function () {
    var filename = '';
    return gulp.src(paths.src + 'scss/blocks/*.scss')
        .pipe(sourcemaps.init())
        .pipe(sass())
        .on("error", sass.logError)
        .pipe(sourcemaps.write())
        .pipe(tap(file => {
            const path = file.path;
            filename = path.replace(/^.*[\\\/]/, '').replace('.css', '');
        }))
        .pipe(gulp.dest('./blocks/' + filename + '/' + filename + '.css'))
});


В gulp.desc получается путь ./blocks/header/header.css, т.е. вроде бы все верно. НО! При этом файл оказывается по пути blocks/.css/header.css
Почему так и как исправить?
  • Вопрос задан
  • 32 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
delphinpro
@delphinpro Куратор тега Gulp.js
frontend developer
передавайте в dest функцию, которая будет возвращать нужный путь
https://gulpjs.com/docs/en/api/dest#parameters

.pipe(gulp.dest(function(vinyl) {
  retun 'path_to....';
}))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы