Наши пользователи часто запрашивали возможность добавлять описания к своим задачам 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
, чтобы увидеть свои описания и флаги. Он должен выглядеть примерно так, как на скриншоте над заголовком!