Javascript 配置中的哪些eslint规则比较慢?
我有一个大约有100条规则的配置,在我的项目上使用所有这些规则运行eslint大约需要10秒。我想找出最慢的规则并消除其中的一些。我该怎么做?是否有用于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 :----------------------------|----------:|-------
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
在路径中。