Parcel предоставляет встроенную поддержку Sass/SCSS без необходимости
ручной настройки сборщиков, загрузчиков или плагинов в базовых
сценариях. Обработка файлов .scss и .sass
интегрирована в пайплайн трансформаций и работает на уровне
автоматического определения зависимостей.
При встрече импорта Sass-файла Parcel определяет тип ресурса, запускает соответствующий трансформер и включает результат в граф зависимостей приложения.
Хотя Parcel умеет работать с Sass автоматически, компилятор Sass должен быть доступен в проекте:
npm install -D sass
Parcel использует Dart Sass как основной движок компиляции.
Отсутствие пакета sass приводит к ошибке сборки при первом
обращении к .scss файлу.
Импорт Sass-файлов выполняется напрямую из JavaScript или других SCSS-файлов.
import './styles/main.scss';
@import './partials/variables.scss';
@import './partials/mixins.scss';
body {
font-family: Arial, sans-serif;
}
Parcel строит единый граф зависимостей, включая как JS, так и CSS/SCSS ресурсы, что позволяет использовать Sass как часть общего пайплайна приложения.
Parcel не изменяет синтаксис Sass и не накладывает ограничений на его использование. Поддерживаются все стандартные возможности:
$primary-color: #4a90e2;
.button {
background-color: $primary-color;
}
.nav {
ul {
margin: 0;
padding: 0;
li {
list-style: none;
}
}
}
@mixin center-flex {
display: flex;
justify-content: center;
align-items: center;
}
.container {
@include center-flex;
}
Parcel поддерживает SCSS Modules по аналогии с CSS Modules. Для активации используется соглашение об именовании файлов:
styles.module.scss
.title {
font-size: 24px;
color: black;
}
import styles from './styles.module.scss';
const el = document.createElement('h1');
el.className = styles.title;
document.body.appendChild(el);
Parcel автоматически преобразует классы в уникальные хэши, предотвращая конфликты имен.
Parcel поддерживает несколько форм импорта внутри SCSS:
@import '../base/reset.scss';
При использовании алиасов Parcel корректно разрешает пути:
@import 'styles/variables.scss';
Алиасы обрабатываются на уровне резолвера, что позволяет избегать длинных относительных цепочек.
Parcel автоматически обрабатывает ссылки на ресурсы внутри Sass-файлов.
.hero {
background-image: url('./images/bg.png');
}
Parcel:
По умолчанию Parcel генерирует source maps для Sass, что упрощает отладку в браузере.
Код SCSS отображается в DevTools без потери структуры:
Ошибки Sass выводятся напрямую в терминал и браузерный overlay в режиме разработки.
Пример типичной ошибки:
Parcel останавливает пересборку только для затронутого модуля, сохраняя остальной граф активным.
Parcel использует файловый кэш и инкрементальную пересборку:
.scss пересобираются локальноЭто особенно важно при работе с крупными стилевыми системами и дизайн-токенами.
После компиляции SCSS Parcel может пропускать CSS через PostCSS-плагины.
Типичный сценарий:
Подключение PostCSS выполняется через конфигурационный файл:
module.exports = {
plugins: [
require('autoprefixer')
]
};
Parcel выполняет несколько этапов оптимизации:
SCSS при этом остаётся источником, а не итоговым артефактом сборки.
Parcel поддерживает современные возможности Dart Sass:
@use 'sass:math';
.container {
width: math.div(100%, 3);
}
@forward './base';
Использование @use вместо устаревшего
@import снижает глобальное загрязнение пространства имён и
улучшает масштабируемость стилей.
Обработка SCSS проходит через единый pipeline Parcel:
Каждый шаг кэшируется и повторно используется при инкрементальных изменениях.
Parcel оптимизирует работу Sass за счёт:
Это позволяет масштабировать SCSS-проекты без ручной настройки сборки.
Sass в Parcel не существует изолированно и может взаимодействовать с:
Parcel автоматически объединяет все эти ресурсы в единый граф сборки, сохраняя целостность зависимостей.