跳转到正文

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:

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 文件:

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,了解如何从 PHP 生成运行时 CSS。