Описание проекта Сборка веб-приложений, основанная на Gulp. Она обеспечивает полный цикл разработки, включая компиляцию JavaScript, обработку стилей SASS/SCSS, оптимизацию изображений и минификацию HTML
Установка Клонируйте репозиторий:
1 git clone https://github.com/phillakt/gulp-build.git
Перейдите в директорию своего проекта:
Рекомендуемые версии node (16.20.2) и npm (8.19.4):
Установите зависимости:
Если не устанавливаются зависимости то указываем флаги:
или
1 npm i --legacy-peer-deps
Использование Для обычной сборки default:
Для production сборки:
Структура проекта Основная структура проекта:
1 2 3 4 5 6 7 8 9 project/ ├── src/ │ ├── js/ │ ├── scss/ │ └── index.html ├── dist/ ├── gulpfile.js ├── package-lock.json └── package.json
Задачи Gulp
clean: Удаляет директорию dist для чистой сборки.
minifyHtml: Минифицирует HTML файлы.
html: Копирует HTML файлы в директорию dist.
js: Компилирует и минифицирует JavaScript файлы с помощью Rollup.
concatJs: Объединяет JavaScript файлы, включая внешние библиотеки.
styles: Компилирует SASS/SCSS в CSS, минифицирует и объединяет стили.
images: Оптимизирует JPEG и PNG изображения.
svg: Минифицирует SVG файлы.
build: Основная задача сборки, выполняющая все вышеперечисленные задачи.
default: Задача по умолчанию, которая отслеживает изменения файлов и запускает соответствующие задачи.
Зависимости
gulp: Система сборки для автоматизации задач разработки
imagemin: Оптимизация изображений
gulp-clean-css: Минификация CSS файлов
browser-sync: Синхронизация браузера и автоматическое обновление
gulp-concat: Объединение файлов
gulp-uglify: Минификация JavaScript
rollup: Сборщик модулей JavaScript
sass: Препроцессор CSS
gulp-sass: Интеграция Sass с Gulp
gulp-sourcemaps: Создание source maps
del: Удаление файлов и директорий
gulp-if: Условное выполнение задач в Gulp
gulp-svgmin: Минификация SVG файлов
gulp-rename: Переименование файлов
minimist: Парсинг аргументов командной строки
gulp-htmlmin: Минификация HTML файлов
Возможные ошибки при установке зависимостей
Ошибка при установке pngquant. Возможное решение - устанавливаем раннюю версию модуля imagemin-pngquant и pngquant-bin:
1 npm install imagemin-pngquant@5.0.1 --save-dev --legacy-peer-deps
1 npm install pngquant-bin@3.1.1 --save-dev --legacy-peer-deps
Преимущества в использовании сборки Gulp
Автоматизация процессов разработки.
Поддержка модульной архитектуры JavaScript.
Оптимизация производительности благодаря минификации и сжатию ресурсов.
Удобный рабочий процесс с автоматическим обновлением браузера.
Легкого расширяется функционал сборки.