Флаги командной строки и их назначение

Общая роль CLI-флагов в Parcel

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

CLI-команды Parcel обычно имеют форму:

  • parcel serve <entry>
  • parcel build <entry>
  • parcel watch <entry>

Поведение каждой команды модифицируется набором параметров, влияющих на сервер разработки, систему кэширования, оптимизацию, вывод файлов и работу с окружением.


Флаги управления сервером разработки (parcel serve)

Сервер разработки в Parcel предназначен для локального запуска приложения с поддержкой HMR (Hot Module Replacement), автоматического обновления страницы и диагностики ошибок.

–port

Определяет порт, на котором запускается dev-сервер.

Пример:

parcel serve index.html --port 3000

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


–host

Задает хост, на котором доступен сервер.

parcel serve index.html --host 0.0.0.0

Позволяет открыть доступ к dev-серверу в локальной сети.


–open

Автоматически открывает приложение в браузере после запуска сервера.

parcel serve index.html --open

Используется в сценариях ускоренного старта разработки.


–https

Запускает сервер с HTTPS.

parcel serve index.html --https

Полезно при разработке приложений, требующих защищённого контекста (service workers, некоторые API браузера).

Дополнительно могут использоваться:

  • --cert
  • --key

для указания сертификата и ключа.


–no-hmr

Отключает Hot Module Replacement.

parcel serve index.html --no-hmr

Применяется при отладке поведения полного перезагрузочного цикла приложения.


Флаги сборки (parcel build)

Команда сборки формирует production-ready артефакты: минифицированные, оптимизированные и разделённые на чанки файлы.


–dist-dir (-d)

Задает директорию вывода собранных файлов.

parcel build index.html --dist-dir build

Позволяет отделить исходный код от результата сборки.


–public-url

Определяет базовый путь, по которому будут доступны ресурсы после деплоя.

parcel build index.html --public-url /app/

Используется при размещении приложения не в корне домена.


–target

Указывает целевую платформу сборки.

parcel build index.html --target browser

Parcel может собирать код под разные окружения (браузер, Node.js, библиотека).


–no-minify

Отключает минификацию кода.

parcel build index.html --no-minify

Используется при анализе output или отладке production-сборки.


–no-source-maps

Отключает генерацию source maps.

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

Снижает размер выходных файлов и ускоряет сборку.


–mode

Определяет режим сборки: development или production.

parcel build index.html --mode production

Режим влияет на оптимизации, уровень логирования и включение дополнительных проверок.


Флаги кэширования

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


–cache-dir

Определяет директорию хранения кэша.

parcel build index.html --cache-dir .parcel-cache

Позволяет изолировать кэш между проектами.


–no-cache

Полностью отключает кэширование.

parcel build index.html --no-cache

Используется при диагностике ошибок сборки, связанных с устаревшими артефактами.


Флаги оптимизации и трансформаций


–no-optimize

Отключает все этапы оптимизации.

parcel build index.html --no-optimize

Влияет на:

  • минификацию
  • tree-shaking
  • оптимизацию зависимостей

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


–experimental-scope-hoist

Включает экспериментальную оптимизацию объединения модулей в единый scope.

parcel build index.html --experimental-scope-hoist

Может увеличивать производительность, но используется с осторожностью из-за возможных несовместимостей.


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


–define

Позволяет подменять глобальные значения во время сборки.

parcel build index.html --define process.env.NODE_ENV=production

Используется для:

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

–env-prefix

Указывает префикс переменных окружения, которые Parcel будет автоматически подхватывать.

parcel build index.html --env-prefix APP_

Все переменные с указанным префиксом становятся доступными в коде.


Флаги логирования и диагностики


–log-level

Управляет уровнем логов:

  • none
  • error
  • warn
  • info
  • verbose
parcel serve index.html --log-level verbose

Используется при диагностике сложных ошибок сборки и зависимостей.


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


–host и –port в сочетании позволяют полностью контролировать сетевую доступность приложения, включая запуск в контейнерах и виртуальных машинах.

Дополнительно в некоторых конфигурациях используется:

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

Флаги автозависимостей и установки

Parcel может автоматически устанавливать недостающие зависимости во время сборки.


–no-autoinstall

Отключает автоматическую установку пакетов.

parcel build index.html --no-autoinstall

Используется в корпоративных окружениях с жёстким контролем зависимостей.


Взаимодействие флагов между собой

Флаги Parcel не изолированы и часто влияют друг на друга:

  • отключение кэша увеличивает время сборки, но делает поведение предсказуемым
  • --no-minify и --mode production могут конфликтовать по смыслу оптимизации
  • --define переопределяет значения до этапа tree-shaking
  • --dist-dir влияет на структуру public-url при деплое

Комбинации флагов позволяют формировать строго определённые сценарии сборки, от лёгкой разработки до полностью оптимизированного production-бандла.