我希望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需要什么才能输出到两个不同的目录?
答案 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问题之前我实际上并不知道这个功能。