【问题标题】:Guard with Haml, Livereload, not compiling changes用 Haml 保护,Livereload,不编译更改
【发布时间】:2011-09-26 19:13:54
【问题描述】:

我已经成功安装了带有haml 和livereload 插件的guard。在一个正在运行的保护壳中,当两者都在运行时,如果我按回车键,haml 会成功编译为 html,然后提供给监听浏览器。

但是,当仅编辑 haml 文件并保存更改时,livereload 只会使用生成的相同 .html 重新加载浏览器。它不会重新编译 .haml -> .html,然后将其提供给浏览器。

我的 Guardfile 在下面。我在这个设置中缺少什么? i) 在保护壳中,按回车编译然后提供生成的 html。 ii)但是在haml文件中保存更改只提供旧的html,而不编译haml。

guard 'haml', :input => 'public', :output => 'public' do
  watch(%r{^public/.+\.html\.haml})
end
guard 'livereload' do
  watch(%r{.+\.(css|js|html)})
end

谢谢

ps - 这不是一个 Rails 项目。只使用 raw guard、guard-haml 和 guard-livereload gems

【问题讨论】:

  • 您确定保存时HTML文件没有改变吗? LiveReload 似乎配置为仅对 css/js/html 文件更改起作用,因此如果在保存 HAML 时重新加载浏览器,则意味着 HTML 已更改。
  • 是的,我注意到了。 1) haml 没有被编译成 html,但是 2) html 文件仍在被提供(意味着文件以某种方式被触及)。这就是令人费解的地方。
  • 感谢您的反馈。我早些时候尝试更新此问题,但 SO 不允许初级用户在 8 小时内回答他们自己的 Q。问题实际上与guard-haml有关,我确实在那里记录了一个问题:github.com/manufaktor/guard-haml/issues/3

标签: haml guard


【解决方案1】:

在 Thibaud(“守卫”作者)的帮助下,我完成了这项工作。基本上,我在提供文件的目录下运行了警卫。

我的项目树看起来像“root/public/css/etc”,我在“root”下运行警卫,并设置“public”作为要监视的目录(guard -w public/)。但我更新了 Guardfile 并将其移至 public/ ,并从那里运行了 Guardfile。现在,haml 正在根据需要进行编译和服务。

guard 'haml' do
watch(/^.+\.html\.haml$/)
end
guard 'livereload' do
  watch(/^.+\.html$/)
end

【讨论】:

    猜你喜欢
    • 2012-04-13
    • 2013-05-15
    • 2013-01-21
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 2019-10-03
    相关资源
    最近更新 更多