В чем разница между Task runner и сборщиком

«В чем разница между Task runner и сборщиком» — вопрос из категории Devops, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Task runner (например, Gulp) выполняет автоматизацию рутинных задач: минификация, транспиляция, запуск тестов. Работает с исходными файлами по одному, используя потоки (streams).

Сборщик (например, Webpack) — это система модулей, которая собирает проект в бандлы, обрабатывая зависимости между файлами. Он строит граф зависимостей и оптимизирует итоговый код.

Пример Gulp:

gulp.task('minify-js', () => {
  return gulp.src('src/*.js')
    .pipe(uglify())
    .pipe(gulp.dest('dist'));
});

Пример Webpack:

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js'
  }
};

Ключевое отличие: Task runner управляет задачами, сборщик — модулями и зависимостями.