Наши пользователи часто запрашивали возможность добавлять описания к своим задачам gulp. Предлагаемое решение заключалось в добавлении такого метода, как gulp.description(); однако мы не хотели расширять нашу поверхность API и хотели поддерживать документирование пользовательских флагов.

Мы искали более элегантное решение и обнаружили, что наиболее гибким вариантом было присоединение статических свойств к функциям задач, содержащим настраиваемые метаданные. Таким образом, вы можете использовать существующие языковые функции вместо пользовательских API. Это также позволяет нам поддерживать другие типы метаданных в будущем.

Поддерживаемые свойства

  • .description: Назначьте строковое описание вашей функции задачи.
function clean() { … }
clean.description = 'Cleans up generated files.';
  • .flags: Назначьте объект флагов вашей функции задачи. Каждый ключ должен быть флагом, а его значение должно быть описанием этого флага.
function build() { … }
build.flags = {
  '--prod': 'Builds in production mode.'
};

Собери все вместе

Прежде чем начать, убедитесь, что вы используете gulp-cli, как описано в предыдущем Sip.

Вам нужно, чтобы ваш gulpfile выглядел примерно так:

var gulp = require('gulp');
function build() { … }
build.description = 'Build entire project.';
build.flags = {
  '—-prod': 'Builds in production mode (minification, etc).'
};
//If you are using gulp 3.x:
gulp.task('build', build);
//Or if you’ve updated to gulp 4.x
gulp.task(build);

Теперь запустите gulp --tasks, чтобы увидеть свои описания и флаги. Он должен выглядеть примерно так, как на скриншоте над заголовком!