본문으로 건너뛰기

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을 만드세요:

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 파일을 두는 것이 가장 안정적인 설정입니다:

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

프로젝트 설정은 시작하기를, PHP에서 런타임 CSS 생성을 하려면 API를 참조하세요.