Пример простой настройки Gulp для макета сайта с комментариями. В этом примере мы определили три задачи: стили, скрипты и изображения.

  • Задача стилей компилирует Sass в CSS, добавляет префиксы поставщиков, минимизирует CSS и объединяет выходные данные в один файл.
  • Задача сценариев минимизирует и объединяет файлы JavaScript.
  • Задача изображений оптимизирует изображения.

Мы также определили задачу наблюдения для отслеживания изменений в исходных файлах и запуска соответствующей задачи при возникновении изменений. Наконец, мы определили задачу по умолчанию для запуска всех трех задач и наблюдения за изменениями файлов при вводе gulp в терминале.

// Подключение Gulp и плагинов
const gulp = require("gulp");
const sass = require("gulp-sass");
const autoprefixer = require("gulp-autoprefixer");
const cssnano = require("gulp-cssnano");
const concat = require("gulp-concat");
const uglify = require("gulp-uglify");
const imagemin = require("gulp-imagemin");

// Определяем задачи
// Компилируем Sass в CSS, добавляем префиксы, минимизируем и объединяем CSS файлы
gulp.task("styles", () => {
  return gulp
    .src("src/scss/**/*.scss") // Исходные файлы
    .pipe(sass()) // Компилируем Sass в CSS
    .pipe(autoprefixer()) // Добавляем префиксы
    .pipe(cssnano()) // Минимизируем CSS
    .pipe(concat("styles.min.css")) // Объединяем в один файл
    .pipe(gulp.dest("dist/css")); // Папка назначения
});

// Минимизируем и объединяем JavaScript файлы
gulp.task("scripts", () => {
  return gulp
    .src("src/js/**/*.js") // Исходные файлы
    .pipe(uglify()) // Минимизируем JavaScript
    .pipe(concat("scripts.min.js")) // Объединяем в один файл
    .pipe(gulp.dest("dist/js")); // Папка назначения
});

// Оптимизируем изображения
gulp.task("images", () => {
  return gulp
    .src("src/images/**/*") // Исходные файлы
    .pipe(imagemin()) // Оптимизируем изображения
    .pipe(gulp.dest("dist/images")); // Папка назначения
});

// Следим за изменениями в исходных файлах и запускаем соответствующие задачи
gulp.task("watch", () => {
  gulp.watch("src/scss/**/*.scss", gulp.series("styles")); // Отслеживаем Sass файлы
  gulp.watch("src/js/**/*.js", gulp.series("scripts")); // Отслеживаем JavaScript файлы
  gulp.watch("src/images/**/*", gulp.series("images")); // Отслеживаем файлы изображений
});

// Задача по умолчанию для запуска при вводе «gulp» в терминале
gulp.task("default", gulp.series("styles", "scripts", "images", "watch"));

 

 

Комментарии

1

Без регистрации и смс