Проект завершить не смог. Из огромного срока на проект смог выделить 14 часов.
Сборка работает на gulp 4 версии
Для работы с репозиторием на вашем компьютере потребуется Git и Node.js (18.x.x). Перед началом работы убедитесь, что все программы работают. Для этого в терминале введите:
- для git
git --version
git примерно ответит
git version 2.42.0.windows.1
версия не важна. Главное, что git отреагировал и написал ответ
- для node.js
node -v
node.js примерно ответит
v18.18.0
важно, чтобы версия была 18.x.x.
После того как вы убедились, что Git и Node.js работают вам нужно определиться с каким препроцессором вы будете работать на проекте: SASS или Less
- Клонируйте репозиторий
git clone [email protected]:htmlacademy/html2-basic-template.git
- Установите зависимости проекта
npm ci
- Начните работу
npm start
// должен запуститься браузер
- Клонируйте репозиторий
git clone [email protected]:htmlacademy/html2-basic-template.git
- Перейдите в ветку с Less-препроцессором
git switch less
- Установите зависимости проекта
npm ci
- Начните работу
npm start
// должен запуститься браузер
В каждой папке есть Readme.md файл, который имеет более полное описание по работе с папкой
├── .github/ # Специальная папка для github
│ └── workflows/ # Автоматизация для github actions
│ ├── check.yml # Запускает линтеры на Гитхабе
│ └── gh-pages.yml # Публикует проект и создаёт ссылку на проект
├── source/ # Исходники проекта
│ ├── fonts/ # Папка для шрифтов
│ ├── images/ # Папка для хранения картинок
│ │ └── icons/ # Специальная папка для преобразования svg в спрайт(stack)
│ ├── js # Скрипты
│ │ └── script.js # Главный скрипт
│ ├── sass|less/ # Папка для препроцессорных файлов sass или less
│ │ └── blocks/ # Стили БЭМ-блоков
│ │ └── header.scss # Стили для конкретного БЭМ-блока
│ │ └── global # Файл для подключения стилей библиотек из папки
│ │ ├── fonts.scss # Подключение шрифтов к проекту
│ │ ├── global.scss # Глобальные стили, которые касаются всего проекта
│ │ └── variables.scss # Переменные для всего проекта
│ ├── vendor # Папка для сторонних бибилотек
│ └── index.html # HTML-файл для главной страницы
└── .editorconfig # Настройки форматирования текстовых файлов
└── .gitignore # Настройки игнорирования файлов для git
└── .stylelintrc # Правила для stylelint
└── gulpfile.js # Автоматизация для Gulp
└── package.json # Зависимости проекта, скрипты, настройки проекта
└── package-lock.json # Зависимости проекта
└── README.md # Документация
npm start
- запускает сборку с сервером для разработки проектаnpm run build
- создаёт папкуbuild
с оптимизированными файлами для продакшена
npm run preview
- посмотреть результат работы prod-версии сборкиnpm run lint
- запустить все проверки. Занимает длительное времяnpm run lint:bem
- проверить правильно использования БЭМnpm run lint:markup
- проверить HTML-разметку через W3C-валидаторnpm run lint:styles
- проверить проект на совместимость с stylelintnpm run lint:spaces
- проверить отступы с помощью editorConfignpm run lint:html
- проверить разметку по правилам linthtml
Все HTML-файлы с разметкой складывайте в папку source/
.
├── source/
│ ├── index.html
│ ├── catalog.html
│ └── form.html
из папки source/
сборка переносит файлы в папку build/
.
├── build/
│ ├── index.html
│ ├── catalog.html
│ └── form.html
Все стили находятся в папке source/sass/
.
├── source/
│ ├── sass
│ │ └── blocks/
│ │ └── header.scss
│ │ └── global
│ │ ├── fonts.scss
│ │ ├── global.scss
│ │ └── variables.scss
Все БЭМ-блоки и остальные препроцессорные файлы подключайте в source/sass/styles.scss
.
styles.scss
/* GLOBAL */
@import "global/variables";
@import "global/global";
@import "global/fonts";
/* BLOCKS */
@import "blocks/header";
БЭМ-блоки импортируйте в секцию /* BLOCKS */
.
Все препроцессорные файлы сборка обработает и превратит в styles.css
. Файл styles.css
сборка перенесёт в
├── build/
│ └── css/
│ └── styles.css
Абсолютно всю графику складывайте в source/images
.
Векторную графику для спрайта складывайте в source/images/icons/
. Автоматизация создаст из иконок файл stack.svg
.
├── source/
│ ├── images/
│ │ └── icons/
Всю графику автоматизация перенесёт в build/images/
.
├── build/
│ └── images/
│ └── icons # папка для спрайта
│ └── stack.svg # спрайт
│ ├── bg.jpg
│ ├── hero.png
│ └── burger.svg
Все шрифтовые файлы лежат в source/fonts/
. Сборка переносит их в build/fonts/
.
├── build/
│ └── fonts/
│ ├── open-sans.woff2
│ ├── open-sans.woff
│ ├── open-sans-bold.woff
│ └── open-sans-bold.woff
Все скрипты лежат в source/script/
.
├── source/
│ ├── js
│ │ ├── script.js
│ │ └── modal.js
Сборка переносит их в build/script/
.
├── build/
│ ├── js
│ │ ├── script.js
│ │ └── modal.js
Для удобства внесения сторонних библиотек в ваш проект, вы можете использовать папку vendor. В этой папке вы можете размещать любые файлы, связанные с внешними библиотеками.
Например, предположим, что вы хотите добавить в проект библиотеку, которая включает в себя как стилевой файл library.css, так и скрипты library.js. Чтобы интегрировать их в ваш проект, следуйте этим шагам:
Положите файлы библиотеки в папку vendor, как показано ниже:
├── source/
│ └── vendor/
│ ├── library.css
│ └── library.js
Если у вас есть несколько библиотек с разными файлами, вы можете группировать файлы одной библиотеки в ее собственную подпапку. Например:
├── source/
│ └── vendor/
│ └── library/
│ ├── library.css
│ └── library.js
При сборке вашего проекта, все файлы из папки vendor будут включены в папку build, сохраняя их структуру. Например:
├── build/
│ └── vendor/
│ └── library/
│ ├── library.css
│ └── library.js
Таким образом, вы можете удобно организовать и внедрить сторонние библиотеки в ваш проект, сохраняя их структуру в папке vendor.