98

我的项目正在从第三方 gem 扩展开源类,我们不想与我们自己的代码保持相同的编码标准。重构 gem 代码不是一个可行的选择。我们只是希望 Rubocop 忽略复制的代码。

如何指示 Rubocop 完全忽略文件或目录?

4

6 回答 6

119

根据orde对手册链接的评论,我找到了 .rubocop.yml 并添加了以下内容:

AllCops:
  Exclude:
    - 'path/to/excluded/file.rb'

路径相对于 .rubocop.yml

于 2016-04-27T17:15:52.903 回答
48

来自rubocop/default.yml

AllCops:
  Exclude:
    - 'node_modules/**/*'
    - 'vendor/**/*'
于 2017-12-23T13:38:58.370 回答
21

为了您的方便,这里是我经常使用的 .rubocop.yml。

在此处查看 .rubocop.yml 的正式解释。

AllCops:
  Exclude:
    - Berksfile
    - recipes/basic.rb
    - attributes/*.rb

# Customize rules
Metrics/LineLength:
  Max: 95

MethodLength:
  Max: 35

Metrics/AbcSize:
   Enabled: false

BlockLength:
  Max: 70

我经常遇到 rubocop 错误和警告。因此我发表了这篇文章。

常见的 Rubocop 错误:提高 Ruby 代码质量

于 2016-10-26T10:05:21.980 回答
19

也可以考虑单个文件的注释。非常适合忽略 linter 进行快速而肮脏的临时任务。

# rubocop:disable all

module TempTask
  ...
end

# rubocop:enable all
于 2020-06-25T14:33:41.443 回答
0

我正在使用较新的版本,每次添加Excluderubocop 都会挂起。原来我需要告诉如何合并Exclude。这可能对你有用

require:
  - rubocop-rails
inherit_mode:
  merge:
    - Exclude
AllCops:
  Exclude:
    - 'node_modules/**/*'
    - 'vendor/**/*'
  NewCops: disable
于 2021-12-22T03:25:19.767 回答
0

通过 Visual Studio 使用 Rubocop 时,我无法获得以前的答案。

我最终注意到 Rubocop 实际上并不是从我的项目文件的根目录执行,而是从我自己的根目录执行,因此使用:

# Doesn't work :(
AllCops:
  Exclude:
    - db/schema.rb

失败是因为db它不在 Rubocop 正在寻找的目录中。

然后我将其更改为

# Works :)
AllCops:
  Exclude:
    - */schema.rb

它工作正常。请注意,文件名周围没有引号。

于 2021-09-14T10:19:41.253 回答