CSSWringCSS MQPackerをPostCSS v3に更新したものをリリースした。どのバージョンを上げるか迷ったが、メジャー・バージョンアップして気持ち悪いのは自分だけなので、ユーザーに混乱を与えないようにメジャー・バージョンを上げることにした。

PostCSSにそのまま渡されるオプションのうちmapキーのデフォルト値が変わったことが互換性のない変更ということになる。今まで通りソース・マップ・ファイルを外部に吐き、元ソースを含めない場合は以下のように設定してやる必要がある。

var csswring = require('csswring');

var result = csswring.wring(css, {
  map: {
    inline: false,
    sourcesContent: false
  },
  from: 'from.css',
  to: 'to.css'
});

つまりインラインにソース・マップを埋め込むinlineオプションと、元ソースをソース・マップに含めるsourcesContentオプションがfalseからtrueに変更になったので、それぞれを無効にしてやる必要があるということだ。単純にインラインで元ソース付きのソース・マップでも構わないのなら、mapオプションをtrueにするだけで良い。

var csswring = require('csswring');

var result = csswring.wring(css, {
  map: true
});

この場合はインラインで全て解決するので、fromtoオプションも不要になる。


インラインをデフォルトにした理由はちょっと良くわかっていない。インラインの方がパス解決などの点で都合が良いことが多く、開発現場では使いやすいからなのではないかと想像している。今までのようにmap: trueだと出力するCSSが肥大化する(3倍超)ので、開発とリリースそれぞれのビルドにおいてオプションを変えて生成するように気を付ける必要があるだろう。