如何忽略带有ruby guard的目录进行livereload?

时间:2017-11-26 15:46:51

标签: ruby xcode guard livereload

我使用Xcode作为我的开发IDE来编辑我正在处理的项目的一些网页和CSS。为了启用实时重新加载功能,我正在使用ruby' guard'使用' livereload'配置的程序插件,效果很好。

然而,Xcode似乎将当前正在编辑的文件保存到标题为"(由Xcode保存的文档)"在与原始文件相同的目录中。当然,这会不断触发警卫脚本并重新加载浏览器。

我尝试了各种忽略选项,但似乎没有任何工作......这是我当前的保护文件...我可以添加或更改它以忽略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中编码并且很难让现场重新加载后卫脚本首先工作。

1 个答案:

答案 0 :(得分:0)

实际上,问题不在于guard,而在于Apple的版本控制文件保存,我没有意识到网络驱动器的启用...版本控制功能不起作用。叹息。

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

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

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

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