Which eslint rules in my config are slow?
eslint shows the spent times of rules if the environment variable TIMING
is set.
For example:
$ 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%
See also the official docs on Per-rule Performance.
I found that removing slow rules didn't really help that much, as loading eslint
and parsing files takes a while.
It is possible to use the --cache
option of eslint
(docs) to speed things up substantially.
When using eslint
to "lint-as-you-type" in various editors, installing eslint_d allows running eslint
as a daemon, and saves the node
loading time.
On the project I'm currently working on, combining both eslint_d
and --cache
brought the linting time from 4+ seconds to 0.17!