缓存
包含数百甚至数千个文件的庞大项目可能需要很长时间才能检查,但 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 缓存。另一个原因可能是持续集成系统允许目录(而不是临时目录)在运行之间保存,或者系统默认缓存某些文件夹。