Захват и повторное использование шара - PullRequest
0 голосов
/ 16 октября 2018

Я новичок в программировании Gulp.

Мне нужно определить «динамическую» задачу scss, которая компилирует несколько исходных каталогов в несколько каталогов назначения

  • src / main / scss /
    • app.scss (глобальный ресурс)
    • modules / (ресурсы модулей)
      • admin /
        • *. Scss
      • ftt /
        • *. Scss

Выше приведен макет каталогаисходные файлы.Я заинтересован в компиляции каждого набора файлов scss в каталоге модулей (который я, возможно, не знаю заранее) в дерево каталогов, которое включает в себя сам модуль

src/main/scss/modules/admin/*.scss ==> webapp/secure/admin/common/common.css
src/main/scss/modules/ftt/*.scss==> webapp/secure/ftt/common/common.css

Я могу написать глобус, который захватывает src/main/scss/modules/*/*.scssно как повторно использовать звезду, представляющую каталог?Если бы я использовал регулярное выражение, я бы захватил и использовал пронумерованную группу $ 1

1 Ответ

0 голосов
/ 16 октября 2018

Я бы предложил посмотреть на glob.sync.Выполните поиск здесь для [gulp] glob.sync user:836330.Это я.Я ответил здесь на несколько вопросов, похожих на ваш.В частности, смотрите запуск задачи gulp для отдельных папок .Он запускает одну и ту же задачу gulp для разных папок, а затем использует имена папок для задания уникальных адресатов.

glob.sync отлично подходит для чего-то подобного.

Далее следует псевдокод ( не проверено ):

const moduleFolders = glob.sync('src/main/scss/modules');

// perhaps your app.scss is supposed to be bundled into each module's css?
// if so, just add a second source to the gulp.src below

const sassSrc = 'common.scss';  // or your main scss file that does the imports in each module

gulp.task('default', () => {

  let stream;

  // work on each folder separately
  moduleFolders.forEach(function (module) {

    stream = gulp.src( module + sassSrc )
      .pipe(sass())
      //.pipe(concat('style.min.css'))
      //.pipe(autoprefixer())
      //.pipe(cssmin())
      .pipe(gulp.dest( "webapp/secure/" + module + '/common' ));
  });
  return stream;
});
...