Saderība un jaunināšana
Šajā lapā apkopots, kas jāzina pirms jaunināšanas vai paļaušanās uz precīzu izvadi: izpildvides prasības, TailwindCSS laidieni, kuriem ports seko, vietas, kur TailwindPHP apzināti atšķiras no TailwindCSS, un piezīmes par katru laidienu. Pilna vēsture pieejama CHANGELOG.md.
Prasības
- PHP 8.2 vai jaunāka versija. Testu kopa darbojas ar PHP 8.2, 8.3 un 8.4.
- Paplašinājumi
ctypeunmbstring. Kompilators izsaucctype_*unmb_chr(). Tie ir iekļauti lielākajā daļā PHP būvējumu un oficiālajos Docker attēlos, tačucomposer.jsontos vēl nedeklarē (#11), tāpēc būvējums bez tiem instalē pakotni, bet izpildlaikā kļūdās. - Neobligāti:
pcntlļauj CLI--watchrežīmam korekti apstāties, saņemotSIGINT/SIGTERM. Bez tā novērošanas režīms joprojām darbojas.
Netiek izmantots Node.js, FFI vai vietējie binārie faili.
Kuram TailwindCSS laidienam tiek sekots
Laidienā 1.7.0 tiek izsekots TailwindCSS v4.3.3. Augšupējā repozitorija versija ir fiksēta kā git apakšmodulis ceļā reference/tailwindcss, tā testu komplekti tiek iegūti no šīs fiksētās kopijas, un 4,427 testi tiek palaisti pēc katras augšupielādes (skatiet Veiktspēja un testēšana). Pārnestie spraudņi atbilst @tailwindcss/typography un @tailwindcss/forms, bet klašu utilītas — clsx, tailwind-merge un CVA; katra no tām ir fiksēta tādā pašā veidā.
Zināmās atšķirības no TailwindCSS
Serializācijas detaļas
Ģenerētais CSS atbilst atsauces testu komplektiem. Dažas serializācijas detaļas atšķiras no tā, ko izvada TailwindCSS CLI, taču neviena no tām nemaina kaskādi:
- Piegādātāju prefiksi: ja atsauce izvada gan autora
-webkit-*rindu, gan ģenerētu rindu, TailwindPHP izvada vienu rindu. - Pārveidotie pseid elementi (
::file-selector-button,::-webkit-datetime-edit-*) paliek autora selektoru sarakstos, nevis tiek sadalīti atsevišķos noteikumos katram pseid elementam. - Autora virknes ar vienpēdiņām saglabā vienpēdiņas (
'Segoe UI'), nevis tiek pārveidotas par virknēm ar dubultpēdiņām. - Vienlaikus sastopamie garie rekvizīti netiek apvienoti saīsinātā pierakstā (Tailwind paša izvadei tas nekad nav nepieciešams).
.p-0saglabāpadding: 0px, kur atsauce CLI izvadapadding: 0, jo izvilktā testu kopa fiksē formu0px. Minifikators to saīsina līdz0.
Nav iekļauts
TailwindPHP ir CSS kompilators. Tajā nav iekļauti Tailwind ekosistēmas redaktora rīki (IntelliSense, automātiskā pabeigšana, klašu kārtošana) un avota kartes, tāpēc CLI nav --map opcijas.
Satura skenēšana
tw::generate() un TailwindCompiler::generate() nolasa klašu nosaukumus tikai no class un className atribūtiem. Klašu nosaukumiem, kas atrodas PHP vai JavaScript virknēs, izmantojiet tw::extractCandidatesFromStrings() vai @source inline("…"). @source ceļu formas API ignorē, bet CLI ņem vērā tikai daļēji (skatiet tālāk).
Zināmās pašreizējā laidiena problēmas
| Joma | Pašreizējā darbība | Problēma |
|---|---|---|
CLI @source |
Ceļi un glob izteiksmes netiek lietoti; tā vietā tiek skenēta ievades faila mape, un @source not neko neizslēdz. Skatiet Ko skenē CLI |
#8 |
CLI --optimize |
Minificē, tāpat kā --minify |
#9 |
| CLI garās opcijas | --input file.css (atdalīts ar atstarpēm) tiek ignorēts; izmantojiet --input=file.css vai -i file.css |
#13 |
| Spraudņu varianti | addVariant()/matchVariant() varianti un tipogrāfijas elementu modifikatori (prose-headings: …) tiek kompilēti bez sava selektora |
#10 |
@apply maisījumi |
@apply --my-mixin; tiek atmests, nevis nodots tālāk |
#12 |
| Atsauces imports | Izvade ir tukša, ja atsauces imports ir pirms utilītu importa; @import "tailwindcss" reference neietekmē rezultātu |
#14 |
Jaunināšanas piezīmes
1.7.0
- Izvade mainās pa baitiem, salīdzinot ar 1.6.x, vienlaikus funkcionāli paliekot līdzvērtīga TailwindCSS v4.3.3 atsaucei. Starp redzamajām izmaiņām:
- Atstarpju reizinātāji:
p-1izvadapadding: var(--spacing), neviscalc(), bet reizinātājs0izvada vienkāršu nulles garumu. - Daļskaitļi tiek pārveidoti procentos:
w-1/2izvadawidth: 50%. - Krāsas:
oklch()/oklab()gaišums tiek serializēts procentos (oklch(62.3% .214 259.815)),whiteunblacktiek saīsināti līdz#fffun#000. - CSS2 pseidoelementi tiek serializēti ar vienu kolu (
:before,:after,:first-letter,:first-line). - Ligzdotie
@media/@supports/@containernoteikumi tiek saplacināti to sākotnējā vietā un avota secībā, nevis pārvietoti uz beigām; deklarācijas tiek pārkārtotas tā, kā tās kārto lightningcss; aizēnotās deklarāciju dublikāti tiek noņemti.
- Atstarpju reizinātāji:
- Kešatmiņas, kuru atslēga ir izvade, vienreiz jāatjauno. Failu kešatmiņas atslēgā
tw::generate()nav iekļauta TailwindPHP versija, tāpēc pēc jaunināšanas palaidiettw::clearCache()(vai mapi, ko norādījāt kācache). kompilatora stāvokļa kešatmiņa pati sevi invalidē. - Jauns:
@variantautora CSS, CSS maisījumi@apply,@media referenceun@import "…" reference, pilns--value()/--modifier()dzinējs funkcionāliem@utility, stingrāka@utilitynosaukumu validācija untw::compile()opcijapolyfills.
1.6.1
- Jauns: utilīta
container(width: 100%plus viensmax-widthkatram pārtraukumpunktam). - Kombinētie
--tw-*mainīgie (pārvietošana, mērogošana, pagriešana, sašķiebšana, filtri un citi) tagad ir reģistrēti@property, tāpēc stilu lapās ir pieejami šie@propertynoteikumi, un tādas transformācijas kātranslate-x-7darbojas pārlūkā.
1.6.0
- Jauns: pastāvīgā kompilatora stāvokļa kešatmiņa (
stateCacheFiletw::compile()unTailwindCompiler,StateCache\compileCssCached()), kā arī sadalītās funkcijasparseCssState()/finalizeCssState()/compileParsed(). Esošie izsaukumi darbojas tieši tāpat kā iepriekš.
1.5.0
TailwindCompilerapakšklasēm, kas pārrakstagenerate()vaicss(), jāpievieno neobligātais parametrsbool $minify = false; PHP noraida pārrakstīšanas, kurās nav iekļauts vecākklases neobligātais parametrs.- Minificēto izvadi veido serializētājs, tāpēc minificētie baiti nedaudz atšķiras no 1.4.x (kešatmiņas, kuru atslēga ir minificētā izvade, vienreiz jāatjauno).
- Jauns:
generateExact()uncssExact()katras lapas CSS iegūšanai no viena ilgdzīvojoša kompilatora.