Мой босяцкий стартовый template с Gulp
ВНИМАНИЕ! Этот проект всегда в разработке, я добавляю и меняю в нем порой довольно много всего => может выглядеть странно и не менее странно работать.
Установка:
git clone git@github.com:yasell/start-template.gitnpm install
Юзкейсы
Старт:
npm start- вжухх и браузер запущен + отслеживаются изменения в файлах
app/директории...
Итоговая сборка проекта:
npm run build(сгенерит папочкуbuildв корне)
Сделать svg-спрайт:
npm run sprite- все svg иконки из
app/img/iconsсоберутся в спрайтикsprite.svgв папкesprite - в
sass/helpers/появится файлик со стилями для иконок_sprite.scss - вставляем нужную иконку как
<svg class="icon icon-cross">
<use xlink:href="img/icons/sprite/sprite.svg#cross"></use>
</svg>
- Мы подключаем иконку ссылаясь на внешний svg-файл, к сожалению не все браузеры поддерживают такой запрос. Для решения этой проблемы есть библиотека svg4everybody. Подключаем её и инициализируем:
$(document).ready(function () {
svg4everybody({});
});
Валидация html:
npm run validation
Линтинг стилей:
npm run csslint
Парадигма
- Нэйминг классов по БЭМ (block__element--modificator).
- Директория разработки
app/Все файлики по папкам: js, fonts, img, sass (переменные, глобальная стилизация, стили блоков). - Диспетчер подключений стилей -
app/sass/style.scss. Все указанные там файлы, компайлятся в один итоговыйstyle.css. - HTML можно собирать из кусков (базовые хедер/футер уже лежат в
app/html/layoutи подключены к стартовой страничке). - Для стилей: CSS линтер здесь -
stylelint(использую в Атоме, конфиг есть); минификатор/оптимизатор -csso. - Проверить актуальность и обновить
package.jsonи все зависимости можно введя в консоль:ncu -u.
В сборку включены следующие модули
- browser-sync – плагин для запуска локального веб-сервера.
- gulp-sass – компиляция sass в css.
- gulp-postcss – postcss собственной персоной.
- autoprefixer – авто-префиксование стилей.
- css-mqpacker – аккуратная сортировка всех медиа выражений.
- gulp-rigger – реиспользование кусков html/js кода в любом месте проекта.
- gulp-typograf – гибкий типограф.
- gulp-minify – минификация js файлов c UglifyJS2.
- gulp-csso – минификации и оптимизации css кода. (по умолчанию в сборке минификация отключена (*!читаемость*))
- csscomb – "расчесывание" стилей.
- gulp-imagemin - оптимизация и сжатие картинок без потери качества.
- gulp-svgmin – svg "чистка"
- gulp-svg-sprite – генерация и настройка svg спрайта
- gulp-html5-lint – линтинг (валидация) html
Назначение папок
build/ Сюда соберется итоговый проект (после `npm run build`)
app/ Исходные файлы (здесь работает сервер автообновлений)
app/fonts/ Шрифты проекта (никак не обрабатываются, при сборке просто переносятся в 'build/fonts')
app/img/ Глобальные картинки (обрабатываются из корня этой папки плюс подпапки)
app/js/ Глобальные js-файлы (обработается только если существует и не пустой), фреймворки (только копируются, могут быть подключены вручную)
app/sass/ Стилевые файлы: глобальные стили и стили блоков - все подключается здесь в 'style.scss'!
app/pages/ Здесь заготовки страниц и блоки (куски), из которых собираются страницы
app/index.html Главная страница проекта (собирается из 'app/html/index.html' соответственно)
On this page
Languages
CSS49.8%HTML31.7%JavaScript18.5%
Created November 2, 2016
Updated July 21, 2018
