
# CLI

`./vendor/bin/tailwindphp` er en PHP portering af **[@tailwindcss/cli](https://github.com/tailwindlabs/tailwindcss/tree/next/packages/%40tailwindcss-cli)** uden krav om Node.js. Den bruger de samme buildindstillinger bortset fra source maps (`--map`), men scanner indhold anderledes: se [Hvad CLI scanner](#what-the-cli-scans). Efter `composer require tailwindphp/tailwindphp` linkes binærfilen ind i `vendor/bin/`.

Hvis du kun har brug for CSS under kørsel fra PHP, skal du i stedet bruge [API](https://tailwindphp.inline0.dev/da/docs/api) — CLI er til build-workflows, der skriver et stylesheet til disk.

## Hurtig start

```bash
# 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
```

## Indstillinger

```bash
tailwindphp [-i input.css] [-o output.css] [--watch] [options…]
```

Angiv værdien for lange indstillinger med `=`: `--input=./src/app.css`, `--output=./dist/styles.css`, `--cwd=/path/to/project`. En mellemrumssepareret værdi efter en lang indstilling (`--input ./src/app.css`) ignoreres i øjeblikket uden fejl, og buildet bruger standardværdierne ([#13](https://github.com/inline0/tailwindphp/issues/13)). Korte indstillinger tager værdien som det næste argument (`-i ./src/app.css`).

| Indstilling | Beskrivelse | Standardværdi |
|---|---|---|
| `-i, --input` | Inputfil til CSS; `--input=-` læser den fra stdin | `@import "tailwindcss"` |
| `-o, --output` | Outputfil | `-` (stdout) |
| `-w, --watch` | Overvåg ændringer, og byg igen efter behov | — |
| `-m, --minify` | Optimer og minimer outputtet | — |
| `--optimize` | Dokumenteret som "optimer uden at minimere"; minimerer i øjeblikket som `--minify` ([#9](https://github.com/inline0/tailwindphp/issues/9)) | — |
| `--cwd` | Den aktuelle arbejdsmappe | `.` |
| `-h, --help` | Vis brugsoplysninger | — |
| `-V, --version` | Udskriv versionen | — |
| `-v, --verbose` | Udskriv stack trace, hvis et build mislykkes | — |

Når `--output` er `-` (standardværdien), skrives det kompilerede CSS til stdout, så du kan sende det videre med en pipe. Statusmeddelelser (versionsbanneret og `Done in …ms`) sendes til stderr.

I modsætning til `@tailwindcss/cli` findes der ingen `--map`-indstilling: TailwindPHP genererer ikke source maps.

## Input CSS

Opret en `app.css` med din Tailwind-import, dit tema og dine direktiver:

```css
@import "tailwindcss";

@theme {
    --color-brand: #3b82f6;
}
```

## Hvad CLI scanner

Indholdsscanning i CLI følger endnu ikke `@source` på samme måde som `@tailwindcss/cli` gør ([#8](https://github.com/inline0/tailwindphp/issues/8)). I den aktuelle udgivelse gælder følgende:

- **Uden et `@source`-fildirektiv** i inputfilen CSS scanner CLI arbejdsbiblioteket (`--cwd`) rekursivt. Det omfatter `vendor/` og `node_modules/`; `.gitignore` tjekkes ikke.
- **Med et eller flere `@source`-fildirektiver** scanner CLI **inputfilens bibliotek** rekursivt. Stien eller globmønstret i direktivet anvendes ikke: `@source "../templates"` ved siden af `src/app.css` scanner `src/`, ikke `templates/`.
- **`@source not "…"`-direktiver** springes over; de udelukker intet.
- **`@source inline("…")`** og **`@source not inline("…")`** fungerer som dokumenteret, fordi compileren håndterer dem selv.

Der læses kun filer med disse filendelser: `php`, `html`, `htm`, `twig`, `blade.php`, `vue`, `jsx`, `tsx`, `svelte`, `astro` og `mdx`. Klassenavne hentes fra attributterne `class` og `className`, ligesom i [`tw::extractCandidates()`](https://tailwindphp.inline0.dev/da/docs/api#twextractcandidates), så en klasse, der kun forekommer i en PHP- eller JavaScript-streng, ikke findes. Medtag sådanne klasser med `@source inline("…")`.

Indtil det er rettet, er den pålidelige opsætning en inputfil CSS øverst i det bibliotek, du vil scanne:

```css
/* templates/app.css: scans templates/ recursively */
@import "tailwindcss";
@source "./";
```

Se [@source](https://tailwindphp.inline0.dev/da/docs/usage/source) for direktivsyntaksen, herunder formerne `not` og `inline()`.

## Eksempler

```bash
# 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 opretter outputbiblioteket, hvis det ikke findes, og afsluttes med en fejl, hvis inputfilen mangler, eller input- og outputstierne er identiske. Overvågningstilstand kontrollerer inputfilen og de scannede filer hvert 500 ms og bygger igen, når en af dem ændres, eller en ny fil dukker op.

## Global installation

Installer globalt for at bruge `tailwindphp` fra enhver placering:

```bash
composer global require tailwindphp/tailwindphp

# Now available globally
tailwindphp -i ./src/app.css -o ./dist/styles.css
```

Se [Kom godt i gang](https://tailwindphp.inline0.dev/da/docs/getting-started) for projektopsætning og [API](https://tailwindphp.inline0.dev/da/docs/api) for generering af CSS under kørsel fra PHP.
