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, темой и директивами:
@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 в начале каталога, который нужно сканировать:
/* 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.