Полный справочник CLI

CLI Parcel представляет собой единый инструмент управления сборкой, разработкой и оптимизацией проекта. Основная команда запускается через бинарный файл:

parcel <команда> <входной_файл>

В зависимости от режима работы Parcel выполняет разные сценарии: разработка, сборка, анализ, обслуживание кеша и инициализация проекта.


Команда запуска разработки (serve)

Режим локального сервера предназначен для разработки с горячей перезагрузкой и инкрементальной сборкой.

parcel serve src/index.html

Особенности поведения:

  • автоматический запуск HTTP-сервера
  • включение Hot Module Replacement (HMR)
  • инкрементальная пересборка модулей
  • кэширование промежуточных результатов
  • поддержка нескольких точек входа

Расширенные параметры:

parcel serve src/index.html --port 3000 --open

Флаги:

  • --port <number> — изменение порта сервера
  • --open — автоматическое открытие браузера
  • --host <string> — привязка к конкретному интерфейсу
  • --log-level <level> — уровень логирования

Команда сборки (build)

Режим production-сборки предназначен для генерации оптимизированных файлов.

parcel build src/index.html

Основные процессы:

  • минификация JavaScript, CSS, HTML
  • tree-shaking неиспользуемого кода
  • code splitting по динамическим импортам
  • оптимизация ассетов (изображения, шрифты)
  • генерация хэшей для кеширования

Типичная конфигурация:

parcel build src/index.html --dist-dir dist

Ключевые параметры:

  • --dist-dir <path> — директория результата сборки
  • --public-url <url> — базовый путь для ресурсов
  • --no-source-maps — отключение source maps
  • --detailed-report — расширенный отчёт о сборке

Инициализация проекта (init)

Parcel предоставляет утилиту генерации структуры проекта.

parcel init

Функции:

  • создание package.json (если отсутствует)
  • установка базовой конфигурации Parcel
  • настройка entry point
  • генерация стандартной структуры каталогов

Расширенные сценарии:

parcel init --template react

Поддерживаемые шаблоны:

  • vanilla
  • react
  • typescript
  • vue

Режим наблюдения за изменениями (watch)

Режим используется для фоновой пересборки без запуска сервера.

parcel watch src/index.html

Поведение:

  • отслеживание файловой системы
  • пересборка при изменениях
  • использование кеша для ускорения
  • отсутствие HTTP-сервера

Применение:

  • CI/CD пайплайны
  • локальная сборка ассетов
  • интеграция с внешними серверами

Управление кэшем

Parcel активно использует файловый кэш для ускорения сборки.

Очистка кэша:

parcel cache clean

Характеристики кэша:

  • хранение трансформированных модулей
  • кэширование результатов анализа зависимостей
  • ускорение последующих сборок
  • автоматическое восстановление при изменении зависимостей

Анализ зависимостей (inspect)

Инструмент диагностики графа зависимостей.

parcel inspect src/index.html

Возможности:

  • визуализация dependency graph
  • анализ входных точек
  • проверка трансформаций модулей
  • выявление дублирующихся зависимостей

Расширенный вывод:

parcel inspect src/index.html --detailed

Работа с переменными окружения

Parcel поддерживает загрузку .env файлов и системных переменных.

Форматы:

parcel build src/index.html --env production

Поддержка:

  • .env
  • .env.local
  • .env.production
  • системные переменные окружения

Использование в коде:

process.env.API_URL

Entry points и множественные входы

Parcel CLI поддерживает передачу нескольких входных файлов:

parcel build src/index.html src/admin.html

Поведение:

  • создание отдельных бандлов
  • независимое code splitting для каждой точки входа
  • общие модули выносятся в shared chunks

Dev Server и HMR

Hot Module Replacement интегрирован в режим serve и не требует дополнительной настройки.

Механизм работы:

  • отслеживание изменений модулей
  • частичная замена кода без перезагрузки страницы
  • сохранение состояния приложения при обновлении

Командно:

parcel serve src/index.html

Плагины и расширения CLI

Parcel CLI поддерживает подключение плагинов через конфигурацию проекта.

Примеры категорий плагинов:

  • трансформеры (TypeScript, Babel)
  • оптимизаторы изображений
  • процессоры CSS
  • интеграции с фреймворками

Установка:

npm install @parcel/transformer-typescript-tsc

Профилирование сборки

Parcel предоставляет инструменты анализа производительности.

parcel build src/index.html --profile

Результаты включают:

  • время обработки модулей
  • затраты на трансформации
  • узкие места сборки
  • статистику кеширования

Работа с публичным URL

Настройка базового пути для ресурсов:

parcel build src/index.html --public-url ./assets/

Поведение:

  • переписывание путей к ассетам
  • корректная генерация ссылок в HTML
  • поддержка CDN-интеграции

Логирование и уровни вывода

Контроль verbosity CLI:

parcel serve src/index.html --log-level verbose

Уровни:

  • none
  • error
  • warn
  • info
  • verbose

Логирование включает:

  • этапы сборки
  • информацию о кешировании
  • HMR события
  • ошибки трансформации

Работа с sourcemaps

Управление картами исходного кода:

parcel build src/index.html --source-maps

Типы генерации:

  • inline
  • external
  • hidden

Отключение:

parcel build src/index.html --no-source-maps

Монорепозитории и workspace режим

Parcel CLI автоматически поддерживает монорепозитории через обнаружение зависимостей.

Особенности:

  • общий кеш для пакетов
  • перекрёстная оптимизация модулей
  • единый dependency graph
  • поддержка npm/yarn/pnpm workspaces

Флаги производительности

Набор параметров для ускорения сборки:

  • --no-cache — отключение кеширования
  • --threads <number> — контроль потоков
  • --detailed-report — расширенная диагностика
  • --profile — профилирование сборки

Конфигурационные режимы CLI

Parcel может работать без конфигурационного файла, но поддерживает .parcelrc.

Запуск с кастомной конфигурацией:

parcel serve src/index.html --config .parcelrc

Функции:

  • переопределение трансформеров
  • настройка резолверов
  • управление пайплайном сборки

Режимы оптимизации

Различные стратегии сборки:

  • development — быстрые сборки, минимальная оптимизация
  • production — максимальная оптимизация и минификация
  • test — стабильный вывод без HMR

Запуск production:

parcel build src/index.html --mode production