- именование классов по БЭМ
- используется БЭМ-структура
- используется препроцессор SCSS
- используется транспайлер Babel для поддержки современного JavaScript (ES6) в браузерах
- используется Webpack для сборки JavaScript-модулей
- используется жёсткий кодгайд
- используется проверка кода на ошибки перед коммитом
//todo EditorConfig
- установите NodeJS
- установите глобально:
- установка версии yarn
1. yarn set version berry
- создаст файл .yarn\releases\yarn-x.x.x.cjs и опишет в .yarnrc.yml - скачать зависимости:
2. yarn
3. yarn run dev
(режим разработки)yarn run build
(режим сборки)yarn install
(update the lockfile)
Если вы всё сделали правильно, у вас должен открыться браузер с локальным сервером. Режим сборки предполагает оптимизацию проекта: сжатие изображений, минифицирование CSS и JS-файлов для загрузки на сервер.
gulp-boiler
├── dist
├── gulp-tasks
├── src
│ ├── blocks
│ ├── fonts
│ ├── img
│ ├── favicon
│ ├── sprites
│ ├── mono
│ ├── multi
│ ├── js
│ ├── libs
│ ├── styles
│ ├── views
│ └── .htaccess
├── gulpfile.babel.js
├── webpack.config.js
├── package.json
├── .yarnrc.yml
├── .babelrc.js
├── .bemrc.js
├── .eslintrc.json
├── .stylelintrc
├── .stylelintignore
└── .gitignore
- Корень папки:
.babelrc.js
— настройки Babel.bemrc.js
— настройки БЭМ.eslintrc.json
— настройки ESLint.gitignore
– запрет на отслеживание файлов Git'ом.stylelintrc
— настройки Stylelint.stylelintignore
– запрет на отслеживание файлов Stylelint'ом.yarnrc.yml
– настройка Yarngulpfile.babel.js
— настройки Gulpwebpack.config.js
— настройки Webpackpackage.json
— список зависимостей
- Папка
src
- используется во время разработки:- БЭМ-блоки:
src/blocks
- шрифты:
src/fonts
- изображения (включая спрайты и фавикон):
src/img
- JS-файлы:
src/js
- страницы сайта:
src/views/pages
- SCSS-файлы:
src/styles
- HTML-файлы:
src/views
- конфигурационный файл веб-сервера Apache с настройками gzip (сжатие без потерь):
src/.htaccess
- БЭМ-блоки:
- Папка
dist
- папка, из которой запускается локальный сервер для разработки (при запускеyarn run dev
) - Папка
gulp-tasks
- папка с Gulp-тасками
-
yarn run lint:styles
- проверить SCSS-файлы. Для VSCode необходимо установить плагин. Для WebStorm или PHPStorm необходимо включить Stylelint вLanguages & Frameworks - Style Sheets - Stylelint
-
yarn run dev
- запуск сервера для разработки проекта -
yarn run ftp
- отправка на фтп собранного проекта
-
yarn run build
- собрать проект с оптимизацией без запуска сервера -
yarn run build:views
- собрать HTML-файлы -
yarn run build:styles
- скомпилировать SCSS-файлы -
yarn run build:scripts
- собрать JS-файлы -
yarn run build:images
- собрать изображения -
yarn run build:webp
- сконвертировать изображения в формат.webp
-
yarn run build:fonts
- собрать шрифты -
yarn run build:favicons
- собрать фавиконки -
yarn run build:gzip
- собрать конфигурацию Apache -
yarn run bem-m
- добавить БЭМ-блок -
yarn run lint:styles --fix
- исправить ошибки в SCSS-файлах согласно настройкам Stylelint -
yarn run lint:scripts
- проверить JS-файлы -
yarn run lint:scripts --fix
- исправить ошибки в JS-файлах согласно настройкам ESLint
- каждый БЭМ-блок имеет свою папку внутри
src/blocks/modules
- папка одного БЭМ-блока содержит в себе один HTML-файл, один SCSS-файл и один JS-файл (если у блока используется скрипт)
- HTML-файл блока импортируется в файл
src/views/index.html
(или в необходимый файл страницы, откуда будет вызываться блок) - SCSS-файл блока импортируется в файл
src/blocks/modules/_modules.scss
- JS-файл блока импортируется в
src/js/import/modules.js
- HTML-файл блока импортируется в файл
Пример структуры папки с БЭМ-блоком:
blocks
├── modules
│ ├──header
│ │ ├── header.html
│ │ ├── header.js
│ │ ├── header.scss
Чтобы вручную не создавать соответствующие папку и файлы, достаточно в консоли прописать следующую команду: yarn run bem-m my-block
- для создания БЭМ-блока в src/block/modules
, где my-block
- имя БЭМ-блока (после создания нужно удалить содержимое js-файла БЭМ-блока).
- страницы проекта находятся в папке
src/views/pages
- главная страница:
src/views/index.html
- главная страница:
- шрифты находятся в папке
src/fonts
- используйте форматы
.woff
и.woff2
- шрифты подключаются в файл
src/styles/base/_fonts.scss
- сконвертировать локальные шрифты можно с помощью данного сервиса
- используйте форматы
- изображения находятся в папке
src/img
- изображения автоматически конвертируются в формат
.webp
. Подробная информация по использованию тут - изображение для генерации фавиконок должно находиться в папке
src/img/favicon
и иметь размер не менее1024px x 1024px
- изображения автоматически конвертируются в формат
Для создания спрайтов изображения .svg
должны находиться в папке src/img/sprites/mono
. Подпапка mono / multi определяет кол-во цветов иконки. Например, у нас есть файлы icon-1.svg
, icon-2.svg
и icon-3.svg
, и мы должны обратиться к icon-2.svg
. Для этого в HTML нужно воспользоваться тегом <use>
:
<svg>
<use xlink:href="img/sprites/mono.svg#logo"></use>
</svg>
Изменить стили svg-иконки из спрайта в CSS:
svg use {
fill: red;
}
Удалять лишний код (fill, storke, style...) из svg не нужно.
- все сторонние библиотеки устанавливаются в папку
node_modules
- для их загрузки воспользуйтеcь командой
yarn add package_name
(например,yarn add jquery
) - для подключения JS-файлов библиотек импортируйте их в самом начале JS-файла БЭМ-блока (то есть тот БЭМ-блок, который использует скрипт), например:
import $ from "jquery";
- для подключения стилевых файлов библиотек импортируйте их в файл
src/styles/vendor/_libs.scss
- JS-файлы и стилевые файлы библиотек самостоятельно изменять нельзя
- для их загрузки воспользуйтеcь командой
yarn -v 1.22.15
npm -v 8.5.5
node -v 16.14.2
(min 14.16.0)
3.2.0
yarn add --dev
или yarn add -D
Создать файл gulp-tasks/ftpSettings.json
по аналогии gulp-tasks/ftpSettings-example.json
.