Parcel изначально проектировался как сборщик, который минимизирует конфигурацию и автоматически понимает зависимости. Поддержка CSS в нём встроена на уровне ядра, поэтому работа с обычными стилями не требует дополнительных загрузчиков или сложной настройки, характерной для более старых инструментов сборки.
Parcel анализирует импортируемые файлы и автоматически определяет их
тип по расширению. При встрече с .css-файлом он:
@import;Импорт CSS в JavaScript выполняется напрямую:
import './styles.css';
Parcel интерпретирует это как зависимость и включает файл в граф модулей. Дополнительные конфигурации не требуются.
CSS в Parcel рассматривается как полноценный модуль системы сборки. Это означает, что он участвует в графе зависимостей наравне с JavaScript и другими ресурсами.
Каждый CSS-файл:
Пример вложенных импортов:
/* base.css */
@import './reset.css';
@import './typography.css';
body {
margin: 0;
}
Parcel рекурсивно разрешает все @import и формирует
единый оптимизированный результат.
Parcel поддерживает весь современный CSS без необходимости включения дополнительных плагинов:
--var)Пример использования переменных:
:root {
--primary-color: #4a90e2;
}
.button {
background: var(--primary-color);
}
Parcel не изменяет семантику CSS, а лишь оптимизирует его и подготавливает к продакшену.
@import
и зависимостейОдной из ключевых возможностей является глубокая обработка директивы
@import. В отличие от классических сборщиков, Parcel не
просто склеивает файлы, а строит полноценный граф зависимостей.
@import './buttons.css';
@import './forms.css';
Каждый импортируемый файл:
Parcel также поддерживает импорт через URL (при соответствующей конфигурации), рассматривая такие ресурсы как внешние зависимости.
Parcel включает PostCSS-пайплайн с автоматическим добавлением
вендорных префиксов при сборке для production-режима. Это избавляет от
необходимости вручную подключать autoprefixer.
Пример исходного CSS:
.box {
display: flex;
user-select: none;
}
В результате сборки могут добавляться префиксы для совместимости с различными браузерами.
В production-сборке Parcel автоматически выполняет минификацию CSS:
Исходный код:
.button {
padding: 10px 20px;
color: #ffffff;
}
После сборки:
.button{padding:10px 20px;color:#fff}
Минификация включается автоматически без дополнительной конфигурации.
Parcel поддерживает импорт CSS непосредственно в JavaScript-модули. Такой подход используется для компонентов или изолированных стилей.
import './component.css';
export function Button() {
return `<button class="button">Click</button>`;
}
При этом Parcel может:
<style>-тег;Поведение зависит от режима сборки и структуры проекта.
Parcel автоматически разделяет CSS по точкам входа и динамическим импортам. Это позволяет загружать стили только тогда, когда они действительно нужны.
Пример динамического импорта:
import('./admin.js');
Если admin.js импортирует CSS, Parcel создаёт отдельный
CSS-чанк, связанный с этим модулем.
Это обеспечивает:
Если сторонняя библиотека содержит CSS-файлы, Parcel автоматически их подключает при импорте JavaScript-модуля.
import 'library/styles.css';
Parcel:
node_modules;Это избавляет от необходимости вручную подключать стили библиотек через HTML.
CSS-файлы в Parcel могут содержать ссылки на ресурсы:
.hero {
background-image: url('./images/bg.png');
}
Parcel автоматически:
То же касается шрифтов:
@font-face {
font-family: 'MyFont';
src: url('./fonts/myfont.woff2');
}
Для production-сборки Parcel применяет хеширование имён файлов:
Пример результата:
styles.8f3a1c.css
Это обеспечивает корректное обновление ресурсов в браузере без конфликтов кеша.
Parcel не ограничивает стандартный CSS и легко расширяется через плагины, если требуется поддержка экспериментальных возможностей PostCSS.
Однако базовая конфигурация уже включает:
Такой подход позволяет работать с CSS без явной настройки инструментов, сохраняя при этом возможность масштабирования проекта.