Skip to content

Шаблон проекта с использованием Gulp, Less, Webpack.

Notifications You must be signed in to change notification settings

barinovm/gulp-project-template

Repository files navigation

Шаблон проекта с использованием Gulp, Less, Webpack

Шаблон для работы над проектом с использованием препроцессора Less и сборщика проектов Gulp.

Автор: Михаил Баринов


Окружение и технологии

HTML-страницы собираются из отдельных частей с помощью плагина gulp-file-include. Стили пишутся с использованием препроцессора LESS, обрабатываются gulp-autoprefixer сжимаются и оптимизируются плагином gulp-csso. JS-файлы разбиты на модули, объединение и оптимизация происходит с помощью WEBPACK, через плагин webpack-stream. Изображения оптимизируются gulp-imagemin, растровые изображения дополнительно конвертируются в формат .webp с помощью gulp-webp, SVG файлы название которых начинается с «icon-» - собираются gulp-svgstore в спрайт. Браузерная совместимость описана в ключе browserlist в package.json, если коротко — «без IE11». Так же проект можно автоматически конвертировать в .zip gulp-zip формат, преобразовать к единому стилю написания кода благодаря prettier и проверить на стилевые и другие ошибки с помощью линтеров stylelint и eslint. Последние 3 функции запускаются автоматически в момент создания git commit и останавливают процесс коммита при выявлении ошибок. Все это благодаря использованию Git hooks и инструмента husky.


Принцип верстки

Mobile-first


Как использовать

npm install - установка зависимостей. (вкл. автоматическая инициализация git и установка husky)

npm start - сборка проекта в режиме разработки и запуск локального сервера.

npm run build - финальная сборка проекта.

npm run zip - финальная сборка проекта и упаковка его в zip-архив.

npm test - запуск теста на наличие стилистических ошибок.


Структура проекта

├── .husky/                 # каталог настроек инструмента husky
├── dist/                   # каталог сборки проекта (cоздаётся автоматически)
├── gulpfile.js/            # каталог задач Gulp
├── src/                    # каталог для размещения исходных файлов проекта
│   ├── fonts/              # каталог шрифтов
│   ├── img/                # каталог растровых и векторных изображений
│   │   ├── favicons/       # каталог дополнительных фавиконок
│   │   └── svg/            # каталог векторных изображений для генерации векторного спрайта
│   ├── js/                 # каталог JS файлов
│   │   ├── modules/        # каталог отдельных модулей JS
│   │   └── index.js        # основной js файл
│   ├── less/               # каталог файлов стилей .less
│   │   ├── fonts.less      # файл подключения шрифтов
│   │   ├── mixins.less     # файл с less-миксинами
│   │   ├── style.less      # основной .less файл
│   │   └── variables.less  # файл с less-переменными
│   ├── parts/              # каталог модулей html (собирается плагином gulp-file-include)
│   │   └── head.html       # модуль html c содержимым тега <head> (для примера)
│   ├── favicon.svg         # основная фавиконка
│   └── index.html          # основной файл разметки страницы
├── .editorconfig           # файл конфигурации настроек редактора
├── .eslintrc               # файл конфигурации ESLint
├── .gitignore              # файл исключений Git
├── .prettierrc             # файл конфигурации Prettier
├── .stylelintrc.json       # файл конфигурации Stylelint
├── gulpfile.js             # основной файл конфигурации Gulp
├── package.json            # файл npm зависимостей и настроек проекта
├── package-lock.json       # lock-файл npm
├── README.md               # документация проекта
├── version.json            # файл с номером актуальной версии проекта (cоздаётся автоматически)

About

Шаблон проекта с использованием Gulp, Less, Webpack.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published