CLI
./vendor/bin/tailwindphp는 필수 Node.js 없이 사용할 수 있는 PHP 포트입니다. --map(@tailwindcss/cli)를 제외하면 동일한 빌드 옵션을 사용하지만 콘텐츠 검색 방식은 다릅니다. What the CLI scans를 참고하세요. composer require tailwindphp/tailwindphp 후 바이너리가 vendor/bin/에 연결됩니다.
PHP에서 런타임에 CSS만 필요하다면 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
Tailwind 가져오기, 테마, 지시문을 사용해 app.css을 만드세요:
@import "tailwindcss";
@theme {
--color-brand: #3b82f6;
}
CLI이 스캔하는 항목
CLI의 콘텐츠 스캔은 아직 @tailwindcss/cli만큼 @source을 따르지 않습니다(#8). 현재 릴리스에서는 다음과 같습니다:
- 입력 CSS에
@source파일 지시문이 없으면, CLI은 작업 디렉터리(--cwd)를 재귀적으로 스캔합니다. 여기에는vendor/와node_modules/가 포함되며,.gitignore은 참조하지 않습니다. @source파일 지시문이 하나 이상 있으면, CLI은 입력 파일의 디렉터리를 재귀적으로 스캔합니다. 지시문에 지정한 경로나 글롭은 적용되지 않습니다.src/app.css옆에 있는@source "../templates"는templates/가 아닌src/을 스캔합니다.@source not "…"지시문은 건너뛰며, 아무것도 제외하지 않습니다.@source inline("…")와@source not inline("…")는 컴파일러가 직접 처리하므로 문서에 설명된 대로 작동합니다.
다음 확장자를 가진 파일만 읽습니다: php, html, htm, twig, blade.php, vue, jsx, tsx, svelte, astro, mdx. 클래스 이름은 tw::extractCandidates()와 동일하게 class 및 className 속성에서 가져옵니다. 따라서 PHP 또는 JavaScript 문자열에만 나타나는 클래스는 찾을 수 없습니다. 이러한 클래스는 @source inline("…")로 강제 포함하세요.
이 문제가 해결될 때까지는 스캔하려는 디렉터리의 최상위에 입력 CSS 파일을 두는 것이 가장 안정적인 설정입니다:
/* templates/app.css: scans templates/ recursively */
@import "tailwindcss";
@source "./";
지시문 구문과 not 및 inline() 형식은 @source을 참조하세요.
예시
# 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은 출력 디렉터리가 없으면 생성하며, 입력 파일이 없거나 입력 경로와 출력 경로가 같으면 오류와 함께 종료합니다. 감시 모드에서는 입력 파일과 스캔된 파일을 500ms마다 확인하고, 파일이 변경되거나 새 파일이 나타나면 다시 빌드합니다.
전역 설치
어디서나 tailwindphp을 사용할 수 있도록 전역으로 설치하세요:
composer global require tailwindphp/tailwindphp
# Now available globally
tailwindphp -i ./src/app.css -o ./dist/styles.css