web-dev-qa-db-ja.com

私の設定のどのeslintルールが遅いのですか?

私は約100のルールを持つ構成を使用しており、これらすべてのルールを使用してプロジェクトでeslintを実行すると、約10秒かかります。最も遅いルールを特定し、それらのいくつかを排除したいと思います。どうすればよいですか? eslint用のプロファイラーツールはありますか?

24
mik01aj

eslintは、環境変数TIMINGが設定されている場合、ルールの消費時間を表示します。例えば:

$ TIMING=1 eslint lib
Rule                         | Time (ms) | Relative
:----------------------------|----------:|--------:
valid-jsdoc                  |   203.798 |     6.7%
camelcase                    |   142.146 |     4.6%
no-unmodified-loop-condition |   136.811 |     4.5%
indent                       |   127.138 |     4.2%
no-undefined                 |   124.525 |     4.1%
keyword-spacing              |    85.397 |     2.8%
space-in-parens              |    76.179 |     2.5%
no-this-before-super         |    72.317 |     2.4%
no-implied-eval              |    69.945 |     2.3%
space-infix-ops              |    57.128 |     1.9%

ルールごとのパフォーマンス に関する公式ドキュメントも参照してください。

57
mysticatea

遅いルールを削除しても、eslintのロードとファイルの解析には時間がかかるため、それほど効果的ではないことがわかりました。

--cacheeslintdocs )のオプションを使用すると、処理速度が大幅に向上します。

さまざまなエディタでeslintを「lint-as-you-type」に使用する場合、 eslint_d をインストールすると、eslintをデーモンとして実行でき、nodeロード時間。

私が現在取り組んでいるプロジェクトで、両方を組み合わせてeslint_dおよび--cacheリンティング時間が4秒以上から0.17になりました!

9
Laurent S