Javascript 配置中的哪些eslint规则比较慢?

Javascript 配置中的哪些eslint规则比较慢?,javascript,profiling,configuration-files,eslint,Javascript,Profiling,Configuration Files,Eslint,我有一个大约有100条规则的配置,在我的项目上使用所有这些规则运行eslint大约需要10秒。我想找出最慢的规则并消除其中的一些。我该怎么做?是否有用于eslint的探查器工具?如果设置了环境变量TIMING,eslint将显示规则的花费时间。 例如: $ TIMING=1 eslint lib Rule | Time (ms) | Relative :----------------------------|----------:|-------

我有一个大约有100条规则的配置,在我的项目上使用所有这些规则运行eslint大约需要10秒。我想找出最慢的规则并消除其中的一些。我该怎么做?是否有用于eslint的探查器工具?

如果设置了环境变量
TIMING
,eslint将显示规则的花费时间。 例如:

$ 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%

另请参见上的官方文档。

我发现删除慢速规则并没有真正起到多大作用,因为加载
eslint
和解析文件需要一段时间

可以使用
eslint
()的
--cache
选项大大加快速度

在各种编辑器中使用
eslint
到“键入时lint”时,安装允许将
eslint
作为守护进程运行,并节省
节点的加载时间


在我目前正在进行的项目中,将
eslint\u d
--cache
结合起来,使linting时间从4秒以上增加到了0.17秒

哇,这么简单!非常感谢。可惜它没有显示解析器计时器。我使用的是
@typescript eslint/parser
,这需要很长时间,需要一个基准测试。事实上,我对
@typescript eslint/parser
也有同样的问题,一个400行的文件大约需要6秒,实际的规则相对比较快,600毫秒是最慢的,也是(99.6%的相对速度)。因此,至少5.4秒的解析时间消失了。
--cache
的一个不幸之处是它不能与
--stdin
一起工作,这让我在尝试将其作为编辑器集成进行优化时绊倒了。我使用vim和插件进行linting。设置
让g:ale\u javascript\u eslint\u executable='eslint\u d--cache'
同时使用
eslint\u d
--cache
将其从~1秒加速到几乎瞬间!我通过VIM的Syntastic插件使用eslint。关于如何在从Syntastic运行时启用
--cache
的任何信息?我自己不使用Syntastic,但第4.5节提到了如何将选项传递给检查器,我猜在您的例子中类似于
let g:Syntastic_javascript_eslint_args=“--cache”
为了让syntastic正常工作,我必须更改一些选项
let g:syntastic\u javascript\u checkers=['eslint']let g:syntastic\u javascript\u eslint\u exe='eslint\u d'let g:syntastic\u javascript\u eslint\u args=“--cache”let g:syntastic\u javascript\u eslint\u exec='/bin/ls'
最后,您需要确保启动vim时,
eslint\u d
在路径中。