HelpSophie
@HelpSophie

Как запустить gulp таск с параметром?

Не могу понять как запустить один и тот же таск с параметрами (выбор языка).

Есть таск
// HTML
const html = (lang) => {
  return gulp.src("source/*.html")
    .pipe(rename({suffix: lang}))
    .pipe(gulp.dest("build"));
};
exports.html = html;

и потом build, в который входит этот таск

// Build
const build = (done) => gulp.series(
  clean,
  copy,
  styles,
  sprite,
  html(ru),
  html(en),
  js
)(done);
exports.build = build;


Но так и не работает. И не понимаю как ему скормить язык.
  • Вопрос задан
  • 129 просмотров
Решения вопроса 2
@vladdimir
Верстальщик
Но таск не перестал запускаться как Starting 'anonymous'...

Потому что функция анонимная.
const html = (lang) => {  // (1)
// 1 - первый вызов происходит, когда вы подключаете таску и передаете ей свои аргументы.
  return () => { // (2)
// 2- эта функция возвращается после передачи аргументов
// и вызывается, когда вы таску запускаете.
// как видите, у нее нет имени.
    return gulp.src("source/*.njk")
      .pipe(rename({suffix: lang}))
      .pipe(gulp.dest("build"));
  };
}
exports.html = html;


const html = (lang) => {
// объявляем функцию
  const html = () => {
    return gulp.src("source/*.njk")
      .pipe(rename({suffix: lang}))
      .pipe(gulp.dest("build"));
  };
  return html;
}
exports.html = html;
Ответ написан
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
https://gulpjs.com/docs/en/api/series/
Читать документацию и смотреть, что функция принимает - не, лучше задать вопрос на QnA...

const html = (lang) => () => {
  return gulp.src("source/*.html")
    .pipe(rename({suffix: lang}))
    .pipe(gulp.dest("build"));
};
exports.html = html;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы