如何告诉 Rubocop 忽略特定目录或文件
How to tell Rubocop to ignore a specific directory or file
我的项目正在扩展来自第三方 gem 的开源 类,我们不想与我们自己的代码保持相同的编码标准。重构 gem 代码不是一个可行的选择。我们只是想让 Rubocop 忽略复制的代码。
如何指示 Rubocop 完全忽略文件或目录?
根据订单对 link 到 the manual 的评论,我找到了 .rubocop.yml 并添加了以下内容:
AllCops:
Exclude:
- 'path/to/excluded/file.rb'
路径相对于.rubocop.yml
为方便起见,这里是我经常使用的。rubocop.yml。
参见 .rubocop.yml here.
的正式解释
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 错误和警告。因此我发布了这个 post.
AllCops:
Exclude:
- 'node_modules/**/*'
- 'vendor/**/*'
也可以考虑对单个文件的评论。非常适合忽略 linter 以执行快速而肮脏的临时任务。
# rubocop:disable all
module TempTask
...
end
# rubocop:enable all
当通过 Visual Studio 使用 Rubocop 时,我无法得到以前的答案。
我最终注意到 Rubocop 实际上并不是从我的项目文件的根目录执行的,而是从我自己的根目录执行的,因此使用:
# Doesn't work :(
AllCops:
Exclude:
- db/schema.rb
失败,因为 db
不在 Rubocop 寻找它的同一目录中。
然后我改成了
# Works :)
AllCops:
Exclude:
- */schema.rb
而且效果很好。请注意,文件名两边没有引号。
我正在使用较新的版本,每次我添加 Exclude
rubocop 都会挂起。结果我需要告诉我如何合并 Exclude
。这可能对你有用
require:
- rubocop-rails
inherit_mode:
merge:
- Exclude
AllCops:
Exclude:
- 'node_modules/**/*'
- 'vendor/**/*'
NewCops: disable
我的项目正在扩展来自第三方 gem 的开源 类,我们不想与我们自己的代码保持相同的编码标准。重构 gem 代码不是一个可行的选择。我们只是想让 Rubocop 忽略复制的代码。
如何指示 Rubocop 完全忽略文件或目录?
根据订单对 link 到 the manual 的评论,我找到了 .rubocop.yml 并添加了以下内容:
AllCops:
Exclude:
- 'path/to/excluded/file.rb'
路径相对于.rubocop.yml
为方便起见,这里是我经常使用的。rubocop.yml。
参见 .rubocop.yml here.
的正式解释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 错误和警告。因此我发布了这个 post.
AllCops:
Exclude:
- 'node_modules/**/*'
- 'vendor/**/*'
也可以考虑对单个文件的评论。非常适合忽略 linter 以执行快速而肮脏的临时任务。
# rubocop:disable all
module TempTask
...
end
# rubocop:enable all
当通过 Visual Studio 使用 Rubocop 时,我无法得到以前的答案。
我最终注意到 Rubocop 实际上并不是从我的项目文件的根目录执行的,而是从我自己的根目录执行的,因此使用:
# Doesn't work :(
AllCops:
Exclude:
- db/schema.rb
失败,因为 db
不在 Rubocop 寻找它的同一目录中。
然后我改成了
# Works :)
AllCops:
Exclude:
- */schema.rb
而且效果很好。请注意,文件名两边没有引号。
我正在使用较新的版本,每次我添加 Exclude
rubocop 都会挂起。结果我需要告诉我如何合并 Exclude
。这可能对你有用
require:
- rubocop-rails
inherit_mode:
merge:
- Exclude
AllCops:
Exclude:
- 'node_modules/**/*'
- 'vendor/**/*'
NewCops: disable