缓存
包含数百甚至数千个文件的庞大项目可能需要很长时间才能检查,但 RuboCop 具有减轻此问题的功能。有一个缓存机制可以存储在检查的文件中发现的违规信息。
缓存有效性
以后的运行将能够检索此信息并显示存储的信息,而不是再次检查文件。如果文件的缓存仍然有效,则将执行此操作,如果以下内容没有更改,则缓存有效:
-
检查文件的內容
-
文件的 RuboCop 配置
-
传递给
rubocop
的选项,有一些例外情况与报告哪些违规行为无关 -
用于调用
rubocop
的 Ruby 版本 -
rubocop
程序的版本(或更准确地说,调用rubocop
程序的源代码中的任何内容)
启用和禁用缓存
如果配置参数AllCops: UseCache
为true
,则启用缓存功能,默认情况下为true
。命令行选项--cache false
可用于关闭缓存,从而覆盖配置参数。如果在本地.rubocop.yml
中将AllCops: UseCache
设置为false
,则--cache true
将覆盖该设置。
缓存路径
默认情况下,缓存存储在$XDG_CACHE_HOME/$UID/rubocop_cache
(如果设置了$XDG_CACHE_HOME
)或$HOME/.cache/rubocop_cache/
(如果未设置)中。
可以通过多种方式将根目录设置为不同的路径(从最高优先级到最低优先级)
-
--cache-root
命令行选项 -
$RUBOCOP_CACHE_ROOT
环境变量 -
AllCops: CacheRootDirectory
配置参数
设置缓存根目录的一个原因可能是存在一个网络磁盘,不同机器上的用户希望在该磁盘上拥有一个通用的 RuboCop 缓存。另一个原因可能是持续集成系统允许目录(而不是临时目录)在运行之间保存,或者系统默认缓存某些文件夹。