Гулп запустить задачу по ключу в массиве объекта - PullRequest
0 голосов
/ 14 октября 2019

Для копирования файлов в место назначения я использую простые gulp src и dest

Я хочу указать это действие копирования согласно ключу в obj:

    var copy = {
            first: {
                dest: 'dist/index.scala.html',
                src: 'app/index.scala.html'
            },
            second: {
                dest: 'dist/setup.scala.html',
                src: 'app/setup.scala.html'
            }
      };

Я могу создать копиюЗадача и копирование файлов в соответствии с src и dest, упомянутыми в объекте. Но мне нужно что-то вроде:

    gulp copy:first //this will only copy from src to dest as specifided under 'first' key

    gulp copy:second //this will only copy from src to dest as specifided under 'second' key

Как то, как мы достигаем в grunt.

1 Ответ

1 голос
/ 14 октября 2019

Согласно этой статье"невозможно передать аргументы в командной строке, которые могут быть использованы этой задачей".

Тем не менее, вы можете сделать что-то вроде этого:

const gulp = require("gulp");

const copy = {
    first: {
        dest: 'dist/index.scala.html',
        src: 'app/index.scala.html'
    },
    second: {
        dest: 'dist/setup.scala.html',
        src: 'app/setup.scala.html'
    }
};

for (let key in copy) {
    gulp.task('copy:' + key, cb => {
        console.log('copy[key]: ', copy[key]);
        cb();
    });
}

Примечание: я изменил copy = [ ... ] на copy = { ... }, потому что массивы не могут иметь строки (например, first) в качестве ключей, нообъекты могут.

Затем выполнить команды gulp:

gulp copy:first

gulp copy:second

Вы также можете захотеть взглянуть на Передача параметра в задание Gulp .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...