Как это работает
Общие принципы
Этап buildStart
- Записывается файл
./src/layouts/mixins.pug
с includ-ами pug-файлов всех блоков.- в файл попадают все существующие блоки-компоненты из директории
./src/components
.
- в файл попадают все существующие блоки-компоненты из директории
- Записываются все служебные файлы:
./src/styles/style.scss
и./src/scripts/entry.js
.- в памяти создаётся список всех используемых блоков-компонентов.
- Копируются все статические ресурсы (конфигурация для копирования
./builder.config.js
—filesRegexp: png|jpg|jpeg|gif|webp
) из компонентов.
Этап transform
- При создании, модификации блоков обновляется их список в памяти и служебные файлы (
./src/layouts/mixins.pug
,./src/styles/style.scss
и./src/scripts/entry.js
). - В разметку прокидываются данные.
- Компилируются файлы страниц, стилей (результат обрабатывается плагинами PostCSS), скриптов.
- Запускается линтинг pug-файлов.
- Генерируется svg-спрайт.
⚠️ Внимание!
SVG-спрайт собирается один раз при запуске разработки. Чтобы добавить новые иконки, необходимо перезапустить сборку.
Этап buildEnd
- Генерируется служебный хеш-файл
./src/service/hashes.json
. - Разметка бьютифицируется.
Этап closeBundle
- В разметку подставляются пути для svg-иконок.
Разработка, сборка и предпросмотр
npm run dev
В процессе разработки сборка файлов проекта не выполняется, все операции происходят в памяти. Директория для собранного проекта ./build
не создаётся, но запускается локальный сервер, осуществляется мониторинг изменений файлов проекта и линтинг pug-файлов.
npm run build
При сборке проекта создаётся директория ./build
, в которую помещаются все собранные файлы. Локальный сервер не запускается, и мониторинг изменений файлов проекта не осуществляется.
npm run preview
Предпросмотр проекта запускает локальный сервер (корневая директория — ./build
).
⚠️ Внимание!
- до предпросмотра вам обязательно нужно запустить сборку проекта:
npm run build
; - предпросмотр всегда отображает последнюю сборку в
./build
и не будет обновляться автоматически при изменении кода.