Стартовый шаблон для простой верстки и верстки для bitrix'а. По умолчанию простая верстка, для битрикса надо указать директорию шаблона в файле gulpfile.js в объекте settings. В нем же список задач для запуска и настройки сборки.
Установка:
sudo npm i --unsafe-perm
Запустить сборку + наблюдение за изменением файлов:
npm run dev
// или
gulp
Запустить только сборку:
npm run build
// или
gulp build
Запустить отдельную задачу:
gulp htmlBuild
gulp cssBuild
gulp jsBuild
...
При необходимости можно настроить отдельную команду, которая будет менять настройки в зависимости от параметра. Примеры в package.json:
"scripts": {
"custom-dev": "gulp --preset=custom-dev",
"custom-build": "gulp build --preset=custom-build"
}
И в gulpfile.mjs:
switch (preset) {
case "custom-dev":
settings.server.enable = true;
settings.imageMin = false;
break;
case "custom-build":
settings.server.enable = false;
settings.imageMin = true;
break;
}
- source - исходники проекта
- .config
- fonts
- html
- images
- js
- scss
- sprites
- upload
- vendor
- www - скомпилированные файлы
modernizr.json- https://github.com/Modernizr/Modernizr/blob/master/lib/config-all.jsonsprites-template.*- шаблоны для генерации спрайтов, генерятся с именамиsprites.*в соответствующих директориях
просто файлы шрифтов
в scss/_fonts.scss идет подключение
layouts- шаблоны страниц, не компилируютсяpages- отдельные страницы, которые компилируются в htmlajax/*- формы, обработка ajax'а, подгружаемые вьюхи_blank.pug- болванка для новой страницы
sprites.pug- файл с миксинами для спрайтов, генерится автоматическиvariables.pug- глобальные переменные
Графика для проекта
sprites.svg - компилируется автоматом, этот файл нужно встроить в готовую страницу (php include)
Отдельные файлы скомпилируются в main.min.js
components/*- файлы для компонентовlayouts/*- файлы для обвязкиplugins/*- файлы для стилизации подключаемых плагинов_variables.scss- переменные для проекта_sprites.scss- файл с классами для спрайтов, генерится автоматически_mixins.scss- файл с миксинами scss_functions.scss- файл с функциями scss_base.scss- стили для стандартных элементов (параграфы, списки, таблицы etc)_controls.scss- стили для полей ввода, чекбоксов, etc. Здесь же стили для стилизации контролов, через плагины_forms.scss- стили для оформления непосредственно формstyles.scss, template_styles.scss- файлы, которые будут скомпилированы, в них подключаются все остальные файлы
Отдельные svg иконок, компилируются в общий файл images/sprites.svg, который подключается на страницу.
Подключение на страницу:
<svg class="icon icon-FILE_NAME"><use xlink:href="#icon-FILE_NAME"></svg>
или через pug-миксин
+icon-FILE_NAME('можно передать доп. класс')
В самих svg-файлах надо убрать всё лишнее (width, height, fill etc).
Чтобы изменить размер иконки надо изменить font-size. Ширина иконки равняется font-size 1:1, высота расчитывается пропорционально. Размеры меняются через наследование. Пример:
// исходная иконка
.icon.icon-example {
font-size: 10px // width = 10px
}
// измененная иконка
.my-change .icon-example {
font-size: 20px // width = 20px
}
Временная графика для верстки (картинки товаров, галереи etc).
Подключение сторонних библиотек
vendor.js- подключение js от плагиновvendor.css- подключение css от плагинов
Изменения:
- Сборщик переведен на модуль es6
- Добавлен imagemin
Изменения:
- форматирование файлов
- обновление пакетов
- удален imagemin (не смог заставить работать на актуальных версиях пакетов)
Изменения:
- структура изменена под размещение сборщика в корне сайта
- удален bower, установка плагинов перенесена на npm
- добавлен swiper
- мелкие исправления
Изменения:
- Добавлен gulp-babel
Изменения:
- gulp4
- удаление задачи для png-спрайтов
- вынесение сторонних плагинов из общих .js и .css файлов
Первая версия сборщика