guard-haml输出到多个位置

时间:2012-04-30 18:27:21

标签: haml guard

我希望Guard将haml编译的输出发送到两个不同的地方。我尝试在我的Guardfile中调用haml两次,如下所示:

guard 'haml', :output => 'first_dir/', :input => 'src/haml' do
  watch %r{^src/haml/.+(\.html\.haml)(?!(\.swp))}
end
guard 'haml', :output => 'second_dir/', :input => 'src/haml' do
  watch %r{^src/haml/.+(\.html\.haml)(?!(\.swp))}
end

但这只是无休止的循环。我的Guardfile需要什么才能输出到两个不同的目录?

2 个答案:

答案 0 :(得分:2)

我没看到你的Guardfile有任何问题。作为解决方法,您可以使用组并启动两个Guard进程:

group :first do
  guard 'haml', :output => 'first_dir/', :input => 'src/haml' do
    watch %r{^src/haml/.+(\.html\.haml)(?!(\.swp))}
  end
end

group :second do
  guard 'haml', :output => 'second_dir/', :input => 'src/haml' do
    watch %r{^src/haml/.+(\.html\.haml)(?!(\.swp))}
  end
end

现在你在自己的终端开始每个人:

guard -g first
guard -g second

不太优雅,但它会起作用......

答案 1 :(得分:1)

对于任何遇到上述答案的人,并试图让团队工作时头撞墙,Netzpirat的语法错误。正确的语法如下:

group :iPhone do
    guard 'haml', :input => 'src/haml', :output => '../iPhone/www/' do
        watch %r{^src/haml/.+(\.html\.haml)}
    end
end

非常感谢Netzpirat,因为在这个SO问题之前我实际上并不知道这个功能。