# vite-bem-template

## Установка
* установите [Node.js](https://nodejs.org/en/) и [Yarn](https://yarnpkg.com/en/docs/install): ```npm install --global yarn```
* скачайте сборку в консоли с помощью [Git](https://git-scm.com/downloads): ```git clone https://github.com/Apnoea/vite-bem-template.git```
* перейдите в скачанную папку со сборкой: ```cd vite-bem-template```
* скачайте необходимые зависимости: ```yarn```
* чтобы начать работу, введите команду: ```yarn dev``` (режим разработки)
* чтобы собрать проект, введите команду ```yarn build``` (режим сборки)

Если вы всё сделали правильно, у вас должен открыться браузер с локальным сервером.
Режим сборки предполагает оптимизацию проекта: сжатие изображений, минифицирование CSS и JS-файлов для загрузки на сервер.

## Файловая структура

```
vite-bem-template
├── src
│   ├── blocks
│   ├── images
│   ├── js
│   ├── layout
│   ├── pages
│   ├── public
│   │   └── fonts
│   └── styles
├── .change-path.js
├── .create-block.js
├── .create-mixins.js
├── .create-page.js
├── .editorconfig
├── .gitattributes
├── .gitignore
├── .gitlab-ci.yml
├── .prettierrc.json
├── .pug-lintrc.json
├── .stylelintrc.json
├── eslint.config
├── package.json
├── postcss.config.js
└── vite.config.js
```

* Папка ```src``` - используется во время разработки:
    * блоки: ```src/blocks```
    * изображения: ```src/images```
    * JS-файлы: ```src/js```
    * основной макет сайта: ```src/layout```
    * страницы сайта: ```src/pages```
    * шрифты: ```src/public/fonts```
    * SCSS-файлы: ```src/styles```

## Команды
* ```yarn dev``` - запуск сервера для разработки проекта
* ```yarn build``` - собрать проект с оптимизацией без запуска сервера
* ```yarn block``` - добавить bem блок
* ```yarn page``` - добавить страницу

## Рекомендации по использованию
### Блоки проекта
* блоки проекта находятся в папке ```src/blocks```
  * блоки, созданные командой ```yarn block```, автоматически подключаются в файл: ```src/blocks/mixins.pug```
* каталог блока содержит в себе файлы разметки, стилей и, по необходимости, скриптов

### Страницы проекта
* страницы проекта находятся в корне папки ```src/pages```
* каждая страница представляет собой отдельный каталог, в котором содержится файл ```index.html``` и файл шаблона ```.pug```
  * страницы, созданные командой ```yarn page```, автоматически генерируют оба файла и их подключения

### Изображения
* изображения находятся в папке ```src/images```
    * изображения автоматически минифицируются с сохранением структуры папок
* из изображений формата ```.svg``` формируется спрайт ```__svg__icons__dom__```

### Шрифты
* шрифты находятся в папке ```src/public/fonts```
    * используйте [форматы](https://caniuse.com/#search=woff) ```.woff2``` и ```.woff```
    * шрифты подключаются в файле ```src/styles/utils/fonts.scss```
    * сконвертировать локальные шрифты можно с помощью [сервиса](https://transfonter.org/)

### Сторонние библиотеки
* все сторонние библиотеки устанавливаются в папку ```node_modules```
    * для их загрузки воспользуйтеcь командой ```yarn add package_name```
    * для подключения JS-файлов библиотек импортируйте их в самом начале JS-файла, например:
    ```javascript
    import $ from 'jquery'
    ```
    * для подключения стилевых файлов библиотек импортируйте их в файл ```src/styles/style.scss```
    * JS-файлы и стилевые файлы библиотек самостоятельно изменять нельзя

## Контакты
* Telegram: [@Alex K](https://t.me/Apnoea)
