CLI
./vendor/bin/tailwindphp 是 PHP 移植版 @tailwindcss/cli,无需 Node.js。它接受相同的构建选项,但不包括源映射(--map),扫描内容的方式则不同:请参阅 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 会递归扫描输入文件所在目录。指令中的路径或 glob 不会生效:与src/app.css同目录的@source "../templates"会扫描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