PostCSSのv4.0.0が年明け早々に出た。互換性のない変更の中では、v3.0.0でchildsと妙なスペルで名付けられたものがnodesに修正されたことが一番大きそうだ。他、便利メソッドの追加に加え、空白の最適化機能が大幅に変更になった。

ソースを読んでもよくわからなかったのでイシューを立てて聞いたところ、思ったよりもかなり複雑そうだった。しかしよく練られてはいる印象は持ったので、これに任せてしまうのが賢そうだ。つまりノードを動かす時にはclone()を通すか、新メソッドのmoveTo()などを使ってやることで、まずノードの空白関連のプロパティーをリセットする。後はPostCSSに前後のノードを参照するかデフォルトのフォーマットを採用するかを選択させるという形だ。

PostCSS側の変更でテストの期待される結果は書き直さなければならなそうだが、ライブラリー側で余計なことをするよりかはコストが低いと思われる。