我的项目扩展了来自第三方 gem 的开源类,我们不想将其与我们自己的代码保持相同的编码标准。重构 gem 代码并不可行。我们只希望 Rubocop 忽略复制的代码。
如何指示 Rubocop 完全忽略文件或目录?
我的项目扩展了来自第三方 gem 的开源类,我们不想将其与我们自己的代码保持相同的编码标准。重构 gem 代码并不可行。我们只希望 Rubocop 忽略复制的代码。
如何指示 Rubocop 完全忽略文件或目录?
AllCops:
Exclude:
- 'path/to/excluded/file.rb'
路径是相对于 .rubocop.yml 的位置
node_modules
和vendor
目录。所以你可能也需要将它们添加到你的排除列表中。 - RamfjordMetrics/BlockLength: \n Exclude: \n - 'Rakefile' \n - '**/*.rake' \n - 'factories/**/*.rb' \n - 'spec/**/*.rb'
我希望您能在代码片段中进行子注释的换行。 - stwr667还可以考虑为单个文件添加注释。非常适用于在快速而肮脏的临时任务中忽略代码检查器。
# rubocop:disable all
module TempTask
...
end
# rubocop:enable all
为方便起见,这是我经常使用的 .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的错误和警告。因此,我发布了这篇文章。
- tmp/**/*
的内容。 - Joshua Pinter我正在使用更新的版本,每次添加Exclude
时,rubocop都会卡住。原来我需要告诉它如何合并Exclude
。这可能对你有用。
require:
- rubocop-rails
inherit_mode:
merge:
- Exclude
AllCops:
Exclude:
- 'node_modules/**/*'
- 'vendor/**/*'
NewCops: disable
当我在Visual Studio中使用Rubocop时,之前的解决方法都无法正常工作。
最终我发现Rubocop实际上并不是从我的项目文件根目录执行,而是从我的个人根目录执行,所以需要使用以下命令:
# Doesn't work :(
AllCops:
Exclude:
- db/schema.rb
该程序执行失败,是因为 Rubocop 无法在同一目录下找到 db
文件。
我随后将其更改为:
# Works :)
AllCops:
Exclude:
- */schema.rb
它可以正常工作。请注意,文件名周围没有引号。
- /**/*/schema.rb
,否则会报错。 - Patrick Barattin/**/schema.rb
就足够了,不需要 /**/*/
。 - devius