matype / stylefmt

stylefmt is a tool that automatically formats stylesheets.
Other
2.1k stars 89 forks source link

extendsで指定したルールが反映されません #207

Closed irok closed 7 years ago

irok commented 7 years ago

.stylelintrc が以下のとき、期待するルールは「stylelint-config-standard の全設定+indentation: 4」というものですが、実際には indentation: 4 のみのルールとして動作しているようです。

{
  "extends": "stylelint-config-standard",
  "rules": {
    "indentation": 4
  }
}

ソースを読んだところ、extends のルールとのマージは lib/params.js#L82 で行われていますが、ここで使われている object-assign は再帰的なマージを行わないため、params.stylelintoriginParams.stylelintで上書きされてしまいます。

    var newParams = objectAssign({}, params, originParams)
    newParams.stylelint = objectAssign({}, params.stylelint, originParams.stylelint)

のようにする必要があるかと思います。

irok commented 7 years ago

この問題は解決難しいでしょうか?優先度の問題でしょうか? 自社用の共通 config を定義していて、それをサイトごとに extentds してカスタマイズしているのですが、共通 config の設定が一切無視されてしまうのです。

irok commented 7 years ago

v4.4.0 では stylelint の config parser を使うようになり、上記の問題が解決したことを確認しました。