PostCSSとPromise

PostCSSのv4.1.0からprocess()などがPromiseを返すようにもなったようだ。Promiseで処理するようにすると、何かのエラーで強制的に例外が吐かれて止まることがなくなり、エラーや警告をまとめて拾えるようになる。つまりPostCSSプロセッサーを連結して処理するツールでは非常に重要な変更だと言えそう。

合わせてプラグインやツール側から警告を渡せるようにもなっている。今まで例外を返していたようなケース(または例外を吐くべきだが止めたくないので握りつぶしていたケース)では、この警告機能を使った方が良いようなことが多そうだ。僕のPostCSSプロセッサー達ではほとんどないが、極稀にone.colorに変な色を投げてしまって落ちるバグのアドホックな対応にちゃんと警告を仕込んでやると、そのうちにどんなバグで落ちてるのか正確にわかることにはなりそうだ。

また単機能のツールであっても、Node.jsのスタックトレースの代わりに処理しやすい形(GNU error formatなど)でエラーを出力することが可能になる。活躍の機会はなかなかないと思うが、うまくハマればエディターで自動的にエラー箇所へジャンプとかも可能になることだろう。


CSSWringとCSS MQPackerのCLIではCSSのパースエラーをうまいこと表示されるようにしているところだ。だけどイマイチ複数のエラーをきれいに拾って処理する方法がわからず、四苦八苦している。このケースでは最初のパースエラーで止まるのでこれでもまぁ良いと思うのだけど。