Как использовать циклы в Gulp 4.0+?

Как правильно использовать циклы в сборочном файле?

Число тем styleThemes может изменится в дальнейшем и количество клиентов oemCompanies тоже.

'use strict';

...

const styleThemes = [ '.scss', '-dark.scss' ];

...

const oemCompanies = getOemCompanies(srcOemPath);

function css() {
  for (var i = 0; i < styleThemes.lenght; i++) {
    var theme = styleThemes[i];
    return src(`assets/styles/${appName}${theme}`)
      .pipe(sourcemaps.init())
      .pipe(sass({ errLogToConsole: true }))
      .pipe(autoprefixer('last 4 version'))
      .pipe(gulp.dest(`${outDefaultPath}/css`))
      .pipe(postcss())
      .pipe(rename({ suffix: '.min' }))
      .pipe(header(banner, { package: appPackage }))
      .pipe(gulpIf(NODE_ENV === 'dev', sourcemaps.write()))
      .pipe(gulp.dest(`${outDefaultPath}/css`))
      .pipe(browserSync.stream());
  }
}

function cssOem() {
  for (var j = 0; j < oemCompanies.length; j++) {
    for (var i = 0; i < styleThemes.lenght; i++) {
      var company = oemCompanies[j];
      var theme = styleThemes[i];
      return gulp
        .src([
          `${srcOemPath}/${company}/scss/oem${theme}`,
          `assets/styles/${appName}${theme}`
        ])
        .pipe(sourcemaps.init())
        .pipe(sass({ errLogToConsole: true }))
        .pipe(autoprefixer('last 4 version'))
        .pipe(gulp.dest(`${outPath}/${company}/static/${appName}/css`))
        .pipe(postcss())
        .pipe(rename({ suffix: '.min' }))
        .pipe(header(banner, { package: appPackage }))
        .pipe(gulpIf(NODE_ENV === 'dev', sourcemaps.write()))
        .pipe(gulp.dest(`${outPath}/${company}/static/${appName}/css`))
        .pipe(browserSync.stream());
    }
  }
};

...
[21:45:11] Did you forget to signal async completion?
...

Ответы (0 шт):