Перейти к содержимому

CLI

./vendor/bin/tailwindphp — это PHP-порт @tailwindcss/cli без необходимости в Node.js. Он принимает те же параметры сборки, кроме карт исходного кода (--map), но сканирует содержимое иначе: см. Что сканирует CLI. После composer require tailwindphp/tailwindphp бинарный файл встраивается в vendor/bin/.

Если во время выполнения вам нужны только CSS из PHP, используйте вместо этого API — CLI предназначен для процессов сборки, записывающих таблицу стилей на диск.

Быстрый старт

Командная оболочка
# Build CSS from an input file
./vendor/bin/tailwindphp -i ./src/app.css -o ./dist/styles.css

# Watch for changes and rebuild
./vendor/bin/tailwindphp -i ./src/app.css -o ./dist/styles.css --watch

# Build minified for production
./vendor/bin/tailwindphp -i ./src/app.css -o ./dist/styles.css --minify

Параметры

Командная оболочка
tailwindphp [-i input.css] [-o output.css] [--watch] [options…]

Для длинных параметров указывайте значение через =: --input=./src/app.css, --output=./dist/styles.css, --cwd=/path/to/project. Значение через пробел после длинного параметра (--input ./src/app.css) сейчас игнорируется без ошибки, а сборка использует значения по умолчанию (#13). Короткие параметры принимают значение следующим аргументом (-i ./src/app.css).

Параметр Описание По умолчанию
-i, --input Входной файл CSS; --input=- считывает его из stdin @import "tailwindcss"
-o, --output Выходной файл - (stdout)
-w, --watch Отслеживать изменения и при необходимости пересобирать —
-m, --minify Оптимизировать и минифицировать результат —
--optimize В документации указано «оптимизировать без минификации»; сейчас минифицирует, как --minify (#9) —
--cwd Текущий рабочий каталог .
-h, --help Показать справочную информацию —
-V, --version Вывести версию —
-v, --verbose Вывести трассировку стека при ошибке сборки —

Если --output равен - (по умолчанию), скомпилированный CSS выводится в stdout, поэтому его можно перенаправить в другое место. Сообщения о ходе работы (баннер версии и Done in …ms) выводятся в stderr.

В отличие от @tailwindcss/cli, параметра --map нет: TailwindPHP не создает карты исходного кода.

Входной файл CSS

Создайте app.css с импортом Tailwind, темой и директивами:

CSS
@import "tailwindcss";

@theme {
    --color-brand: #3b82f6;
}

Что сканирует CLI

Сканирование содержимого в CLI пока не учитывает @source так же, как это делает @tailwindcss/cli (#8). В текущем выпуске:

  • Если во входном CSS нет директивы @source, CLI рекурсивно сканирует рабочую директорию (--cwd), включая vendor/ и node_modules/; .gitignore не учитывается.
  • Если есть одна или несколько директив @source, CLI рекурсивно сканирует директорию входного файла. Путь или шаблон в директиве не применяется: @source "../templates" рядом с src/app.css сканирует src/, а не templates/.
  • Директивы @source not "…" пропускаются и ничего не исключают.
  • @source inline("…") и @source not inline("…") работают как описано, поскольку их обрабатывает сам компилятор.

Читаются только файлы со следующими расширениями: php, html, htm, twig, blade.php, vue, jsx, tsx, svelte, astro и mdx. Имена классов берутся из атрибутов class и className, как в tw::extractCandidates(), поэтому класс, указанный только в строке PHP или JavaScript, не будет найден. Добавьте такие классы принудительно с помощью @source inline("…").

Пока это не исправлено, надежный вариант — разместить входной файл CSS в начале каталога, который нужно сканировать:

CSS
/* templates/app.css: scans templates/ recursively */
@import "tailwindcss";
@source "./";

См. @source, где описан синтаксис директив, включая формы not и inline().

Примеры

Командная оболочка
# Build from an input file
tailwindphp -i ./src/app.css -o ./dist/styles.css

# Build minified for production
tailwindphp -i ./src/app.css -o ./dist/styles.css -m

# Watch mode with minification
tailwindphp -i ./src/app.css -o ./dist/styles.css -w -m

# Run against a different working directory
tailwindphp -i app.css -o dist/styles.css --cwd=/path/to/project

CLI создает выходной каталог, если он не существует, и завершает работу с ошибкой, если входной файл отсутствует или пути входного и выходного файлов совпадают. В режиме наблюдения проверяется входной файл и просканированные файлы каждые 500 мс; сборка повторяется при изменении любого из них или появлении нового файла.

Глобальная установка

Установите глобально, чтобы использовать tailwindphp из любого места:

Командная оболочка
composer global require tailwindphp/tailwindphp

# Now available globally
tailwindphp -i ./src/app.css -o ./dist/styles.css

См. Начало работы для настройки проекта и API для генерации CSS во время выполнения из PHP.