Sass и Vite
Vite — популярный инструмент для фронтенд-проектов: он запускает сервер разработки и собирает сайт для публикации. Vite сам компилирует Sass — достаточно установить пакет компилятора и импортировать файлы .scss. Отдельный шаг sass --watch не нужен.
Создание проекта
Создайте проект из шаблона на чистом JavaScript и установите компилятор Sass:
npm create vite@latest site -- --template vanilla
cd site
npm install
npm install --save-dev sass-embeddedsass-embedded — тот же Dart Sass, упакованный так, чтобы быстрее работать внутри инструментов сборки. Обычный пакет sass тоже подходит: Vite использует тот, что установлен.
Где лежат стили
В проекте на Vite код находится в src/. Стили положите в src/styles/:
site/
├── index.html
├── src/
│ ├── main.js
│ └── styles/
│ └── main.scss
└── package.jsonВсё, что в этом курсе лежит в styles/, в проекте на Vite кладите в src/styles/. Создайте src/styles/main.scss:
// src/styles/main.scss
$primary: #2563eb;
h1 {
color: $primary;
}Импорт стилей
Vite добавляет стили на страницу, когда их импортирует JavaScript. Откройте src/main.js, удалите код шаблона и импортируйте файл:
// src/main.js
import './styles/main.scss';
document.querySelector('#app').innerHTML = '<h1>Мой сайт</h1>';Запустите сервер разработки:
npm run devОткройте http://localhost:5173 — заголовок синий. Измените $primary и сохраните файл: страница обновится сразу, без перезагрузки.
Сборка
Для публикации соберите проект:
npm run buildVite скомпилирует Sass, сожмёт CSS и положит его в dist/assets/ с хешем в имени, например index-B7f3kQ2a.css. Папку dist/ и нужно загружать на сервер.
Какие файлы Vite считает Sass
| Файл | Что делает Vite |
|---|---|
main.scss | Компилирует как SCSS |
main.sass | Компилирует как синтаксис с отступами |
_buttons.scss | Частичный файл: компилируется только в составе файла, который его подключает |
Частичным файлам посвящена глава о файлах и модулях.
Частая ошибка
Если импортировать файл .scss, не установив компилятор, сервер разработки покажет ошибку о том, что зависимость препроцессора не найдена. Sass не входит в Vite — выполните npm install --save-dev sass-embedded и перезапустите npm run dev.