1

我希望 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 需要什么样的外观才能输出到两个不同的目录?

4

2 回答 2

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

不是很优雅,但它会工作......

于 2012-05-25T22:16:55.960 回答
1

对于任何遇到上述答案并试图让小组工作的人,Netzpirat 的语法错误。正确的语法如下:

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

仍然感谢 Netzpirat,因为直到这个 SO 问题我才真正了解此功能。

于 2013-03-13T00:28:09.317 回答