【问题标题】:How can I write guard-rubocop results in a file?如何将guard-rubocop 结果写入文件?
【发布时间】:2021-09-26 03:00:33
【问题描述】:

我已经实现了guard-rubocop gem。我尝试了没有防护的相同宝石。如果没有警卫,我可以将结果写入文件(rubocop -o/--out)rubocop without guard 。但是有了警卫,我找不到选项rubocop with guard。有人可以教我如何将guard-rubocop 结果写入文件吗?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 guard rubocop


    【解决方案1】:

    你试过了吗

    guard :rubocop, cli: ['--out /path/to/output/file'] do
      # ...
    end
    

    documentation中建议的那样

    【讨论】:

    • 运行guard-rubocop时出现以下异常:/home/user/.rvm/gems/ruby-2.0.0-p353@alo-gu/gems/json-1.8.1/lib/ json/common.rb:155:in `initialize' JSON 文本必须至少包含两个八位字节! (JSON::ParserError)。收到此错误
    • 我的问题是,当我运行guard rubocop 时,结果必须保存在文件中,而不是在我的命令之后成为垃圾
    • 我再次遇到的错误。无效选项:--out /home/user/work/projects/a/axld-guard/rubocop.txt 10:17:31 - 错误 - 运行 guard-rubocop 时发生以下异常:/home/user/.rvm/ gems/ruby-2.0.0-p353@anon-ui-gu/gems/json-1.8.1/lib/json/common.rb:155:in `initialize' JSON 文本必须至少包含两个八位字节! (JSON::ParserError)
    • 我已经阅读了有关此问题的 guard-rubocop 和 rubocop 的来源。我找到的解决方案如下:guard :rubocop, cli: ['--format', 'html', '--out', 'rubocop/index.html'] do 你必须分别给出论点的所有部分!通过阅读此处找到的 rubocop 规范文件找到:github.com/bbatsov/rubocop/blob/…
    【解决方案2】:

    更新

    如果您只需要将 rubocop 输出归档,那么可以这样做:

    # Guardfile
    
    # set before guard rubocop initialisation
    UI.instance_variable_set :@logger, Lumberjack::Logger.new("log/errors.log", UI.options)
    
    guard :rubocop do
      # ...
    end
    

    修复:

    Guard 有一种官方方式来设置记录器的选项,而不是黑客攻击,例如(感谢@Netzpirat):

    logger device: "log/errors.log"
    

    【讨论】:

    • 上述行添加后仅在日志文件中提供调试信息。所有错误都显示在我的命令下方。
    • Guard 有一个logger DSL 来配置它来记录到一个文件,见github.com/guard/guard#logger 不需要使用instance_variable_set
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多