我有一个 Rails 6 项目,并尝试使用 RuboCop 的
auto-correct
选项来修复许多 Style/FrozenStringLiteralComment
错误(主要在生成的文件中)。
无论我从项目根目录运行
bundle exec rubocop --auto-correct --only Style/FrozenStringLiteralComment
多少次,Rubocop 都只会报告错误,但不会自动更正它们:
app/models/product.rb:1:1: C: Style/FrozenStringLiteralComment: Missing frozen string literal comment.
通过使用
--show-cops
选项运行,我可以看到该警察“支持 --自动更正”,所以我不确定出了什么问题。
我的
.rubocop.yml
文件只有一项配置设置:require: rubocop-rails
。
我还运行了
bundle exec rubocop -a
,它纠正了配置和类似文件中的其他错误(主要是单引号)。
知道为什么自动更正在这种情况下不起作用吗?谢谢。
这是 0.87 版本中引入的重大更改(请参阅问题)。
引用那里:
rubocop -a 执行所有自动更正,包括不安全的自动更正。必须添加 --safe-auto- Correct 来排除不安全的。
您现在应该使用
-A
标志来安全和/或不安全地自动更正您的文件:
rubocop -a / --auto Correct 不再运行不安全的更正; rubocop -A / --auto Correct-all 运行安全和不安全的更正。选项 --safe-auto Correct 已弃用
它应该对你有用:
bundle exec rubocop -A --only Style/FrozenStringLiteralComment
运行bundle exec rubocop --parallel -A