Как динамически изменять пути в gulp?

src/
    a-module/
            css/
            js/
            html/
            sass/
            ts/
            jade/
    b-module/
            css/
            js/
            html/
            sass/
            ts/
            jade/

Возможно ли при компиляции задавать динамические пути так, чтобы препроцессоры из модуля "а" компилировало в модуль "а", а из "b" в "b"?
  • Вопрос задан
  • 2226 просмотров
Решения вопроса 1
@yaroslavgrishajev
Если не ошибаюсь, то достаточно просто указать путь типа 'src/**/*.*'

Пересмотрел вопрос :)
Плагин gulp-rename делает то, что Вам нужно. Там в документации это описано: можно на лету поменять путь указанный в gulp.src (например заменить sass на css).

У меня это выглядело вот так:

var gulp = require('gulp'),
    sass = require('gulp-sass'),
    rename = require('gulp-rename');

gulp.task('sass', function () {
    gulp.src('./src/**/*.scss') 
        .pipe(sass({
            includePaths: ['./src/']
        }))
        .pipe(rename(function(path){

                // path.dirname = 'module-a(b)/sass' - это то, что задано в gulp.src
        	path.dirname = path.dirname.replace( "sass", "css" );

                // path.dirname = 'module-a(b)/css' - а теперь мы поменяли так, как нам нужно
        	return path; 
		  }))
        .pipe(gulp.dest('./src/')); // и тогда все сложится в src/module-a(b)/css - в нужную папку модуля
});

gulp.task('default', ['sass']);


Но там уже как душе угодно можно плясать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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