Parcel CSS: Ein neuer CSS-Parser, Transformer und Minifier

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Frisch erschienen von Devon Govett, dem Erfinder von Parcel, ist Parcel CSS.

Ein CSS-Parser, Transformer und Minifier, geschrieben in Rust.

Gut. Die CSS-Welt könnte eine kleine Umwälzung durch Verarbeitung wie diese gebrauchen.

Ich habe vor ein paar Wochen geschrieben

Du weißt, wie esbuild die Welt der JavaScript-Verarbeitung auf den Kopf gestellt hat? Vielleicht brauchen wir ein cssbuild? Es würde Imports verarbeiten und Bundling betreiben (etwas, wofür wir uns normalerweise auf Sass verlassen). Das Ziel wäre extreme Geschwindigkeit. Vielleicht wäre es Plugin-basiert und kompatibel mit der PostCSS-API, sodass bestehende PostCSS-Plugins darauf funktionieren würden. Vielleicht könnte es Sourcemaps erstellen und Modifikationen vornehmen. Vielleicht würde es auch dein Sass ausführen, ich weiß es nicht. Aber etwas, das das CSS-Ökosystem so beflügelt, könnte cool sein.

Fast! Es scheint, dass es kein Bundling (standalone sowieso) tut. Ich schätze, es müsste einfach eine Syntax dafür erfinden, da ich denke, dass Sass das mehrdeutige Verhalten von @import, genau wie natives CSS, bedauert, und ich würde es niemandem verübeln, diesen Weg nicht gehen zu wollen. Es ist sicherlich heikles Terrain, da die Erfindung von Syntax das Ganze in eine andere Kategorie von Werkzeugen einordnet. Ich denke aber, es wäre es wert, denn das Aufteilen von CSS in kleinere Dateien, aber deren Bündelung in der Entwicklung ist wie... eine Sache, die Leute tun, und ich könnte mir vorstellen, das wirklich nutzen zu wollen, ohne sich unbedingt an Parcel (das bündeln kann) binden zu müssen.

Warum also dein CSS durch dieses Ding laufen lassen? Laut der Dokumentation sieht es so aus, als würdest du das tun, weil...

(Ursprünglich dachte ich, es würde für diese Aufgaben andere Tools nutzen, da Tools wie Autoprefixer und cssnano in der package.json-Datei des Projekts auftauchten, aber wie der Kommentar von Devon unten bestätigt, ist Parcel CSS ein Ersatz für diese, es nutzt sie nicht.)

Aber es gibt noch eins! Für mich scheint das Killer-Feature von Parcel CSS das zu sein, was sie "Syntax-Senkung" nennen, was bedeutet, dass du "zukünftiges" CSS heute nutzen kannst (wie z.B. Nesting), indem du es zu Dingen verarbeiten lässt, die Browser verstehen, so wie Babel es bei JavaScript tut. Es fühlt sich im Geiste ähnlich an wie postcss-preset-env.

Und entscheidend ist, es ist schnell

Tow line charts chowing how fast Parcel CSS bundles packages and how small the resulting files are.
Parcel CSS ist schnell und gibt kleine Dateien aus. (Quelle: @devongovett)

Wird Parcel CSS ein Ökosystem?

Also, ich schätze, die große Frage ist: Wenn Parcel CSS zum bevorzugten CSS-Parser wird, bekommen wir dann Plugins? Und wenn ja, wird es dann ein robustes Ökosystem wie PostCSS-Plugins?