В больших или распределенных командах обмен знаниями об инструментах может быть проблемой. Когда цепочка инструментов или конвейер становятся большими и содержат много кода, эта проблема растет вместе с размером кодовой базы. Предложить решение так же просто, как описать свои задачи.

помощь глотком

Недавно я собрал gulp-assist как инструмент для решения этой проблемы. Своего рода расширение для Gulp, gulp-assist отображает важную информацию о настройке инструментов в стильном формате. Насколько осмысленно, полностью зависит от разработчика, предоставляющего его.

А как насчет флагов --tasks и --tasks-simple, которые уже есть в Gulp? Это здорово, если вы хотите получить общее представление о структуре инструментария, но ничего не дает нам, если мы хотим знать об отдельных задачах.

Поплавки и спасательные жилеты

Все это звучит прекрасно, но как выглядит эта штука? ДАЙММЕ’ДА КАСШШХ!. Как запустить в терминале:

И для каждой отдельной задачи включая флаги и их описания:

Пурти нет?

Чтобы надуть, потяните за вкладку

Эта вещь действительно проста в использовании, а несколько дополнительных нажатий клавиш, несомненно, сэкономят время в будущем.

const gulp = require('gulp');
// initialize the module
require('gulp-assist')();
gulp.task('lint', () =>
	// ...
);
gulp.assist('lint', {
  desc: 'Analyzes code for errors and convention violations.',
  flags: {
    src: 'Specifies a directory / module to inspect, within the `src` directory.'
  }
});

Определите свои задачи, как обычно, затем зарегистрируйте задачу с помощью gulp-assist. Важно отметить, что gulp-assist нуждается в задаче, определенной с помощью Gulp, прежде чем ее можно будет зарегистрировать с помощью gulp-assist. Это преднамеренное дизайнерское решение, но я всегда открыт для предложений.

Альтернативы

Самое замечательное в Gulp то, что есть множество альтернатив для любой вещи, которую вы, возможно, захотите сделать. При этом вам может понравиться gulp-help больше, чем мое расширение. Он перехватывает метод gulp.task, чтобы разрешить дополнительные параметры, описывающие задачу.

Меня не устраивал такой подход, так как я предпочитаю разделение задач и не люблю модифицировать установленный API. Я также предпочитаю вывод gulp-assist (но я явно предвзят).

Ваше здоровье!

Первоначально опубликовано на shellscape.org 8 января 2017 г.