そこで、 pleeease.io などのCSS後処理を行うためのいくつかのフレームワークに出くわしましたが、CSS後処理を使用する主な利点やユースケースは何でしょうか。ミックスイン/関数の前処理でほぼ同じことを達成できると思います。 SASSやLESSなどの前処理言語と組み合わせてどのように使用されますか?
後処理と前処理の違いは、少なくともプログラミング言語の場合には存在しません。どちらも、フォーマットA(人間が作成したもの)からフォーマットB(必要ですが、書くのは不便)への変換について説明しています。
“compiler”: A -> B
== CSS-related examples ==
less: LESS -> CSS
sass: SASS -> CSS
sass: SCSS -> CSS
autoprefixer: CSS -> CSS
minifier: CSS -> CSS
pleeease: CSS -> CSS
== Other examples ==
c preprocessor: C -> C without macros
gcc: C -> machine code
pandoc: LaTeX -> HTML
pandoc: Markdown -> HTML
pandoc: LaTeX -> Markdown
それらの例に関するいくつかの観察:
入力形式と出力形式は同じにすることができます。これは、コードティディエ、ミニファイア、およびソースを何らかの形で単純化するその他のプロセッサの場合です。例えば。 Cプリプロセッサは、ソースコード内のマクロと定数を展開します。これは、プレフィックスなしのCSSディレクティブをプレフィックス付きのバリアントに展開するautoprefixerと同等です。
プロセッサには、それぞれが変換の一部を実行する複数のサブプロセッサが含まれる場合があります。
Pleeeaseがそれ自体をプリプロセッサではなくポストプロセッサと呼ぶ場合、これは行われます…
要約すると、プログラミング言語の領域で前処理と後処理を区別する技術的な理由はありません。 「後処理」という用語はこの分野では広く使用されていないため、「前処理」、「コンパイル」、または「変換」に置き換えて優先する必要があります。
前処理と後処理の目標はまったく異なります。
プリプロセッサも効率的なコードの領域を掘り下げることは事実です(1つの一般的な例は縮小化です)。その理由は、単純にそれらが可能だからです。 LESSコンパイラーによって実装された単純なパスで実現できるのに、なぜ開発者に別のツールを使用してLESS出力を縮小させるのですか?
プリプロセッサが開発者の意図にどのようにアクセスできるかを見ると、プリプロセッサはポストプロセッサよりも優れた最適化を提供できる可能性があります。実際には、専用のツールを使用すると、より良い結果が得られます。
プリプロセッサとポストプロセッサの両方を使用しない理由はありませんが、実際の有用性はケースバイケースで判断する必要があります(ツールとユースケースの両方の組み合わせが影響を与える可能性があります)。プリプロセッサの一部の機能をオフにし、ポストプロセッサに依存することで、最良の結果を得ることが完全に可能です。