代码之家  ›  专栏  ›  技术社区  ›  Paige DePol

如何使用ruby guard for livereload忽略目录?

  •  0
  • Paige DePol  · 技术社区  · 7 年前

    我使用Xcode作为我的开发IDE,为我正在从事的项目编辑一些网页和css。为了实现实时重新加载功能,我使用了配置了“livereload”插件的ruby“guard”程序,效果很好。

    但是,Xcode似乎会将当前正在编辑的文件保存到与原始文件位于同一目录中的名为“由Xcode保存的文档”的临时目录中。当然,这会不断触发guard脚本并重新加载浏览器。

    我尝试了各种忽略选项,但似乎没有任何效果。。。这是我当前的守卫文件。。。我可以添加或更改什么使其忽略Xcode目录,无论它位于监视的目录下?

    guard 'livereload', grace_period: 0.5 do
      interactor :off
    
      directories %w(resources/img resources/devel)
    
      ignore %r{\(A\sDocument\sBeing\sSaved\sBy\sXcode\)}
    
      compiled_extensions = {
        css: :css,
        js: :js,
      }
    
      static_extensions = {
        html: :html,
        png: :png,
        gif: :gif,
        jpg: :jpg,
        jpeg: :jpeg,
      }
    
      compiled_exts = compiled_extensions.values.uniq
      watch(%r{.+\.(#{compiled_exts * '|'})$})
    
      static_exts = static_extensions.values.uniq
      watch(%r{.+\.(#{static_exts * '|'})$})
    end
    

    我认为当检测到文件被更改时,可能有一些方法可以运行一些Ruby代码,如果忽略不起作用,也许可以检查目录。。。但是我从来没有用Ruby编写过代码,要让live reload guard脚本一开始就工作起来已经够棘手的了。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Paige DePol    7 年前

    事实上,问题不在于 guard 但更确切地说,苹果的版本文件保存,我没有意识到这是为网络驱动器启用。。。版本控制功能不起作用的地方。叹气

    在终端中执行以下命令关闭版本控制(内部称为持久性?)仅用于Xcode的功能,解决了我的问题:

    defaults write com.apple.dt.Xcode ApplePersistence -bool False

    我也不需要为我的源代码启用持久性,因为我已经使用了版本控制。

    我回答了自己的问题,以防有人有同样的问题。

    推荐文章