Ruby noob - 我需要在我的 rake 任务中运行警卫,但我找不到让它在后台运行的方法。它需要最后运行第二个,因此让guard >
shell 等待命令会阻止最终任务运行,因此sh bundle exec guard
不能选择调用 rake 文件。根据文档,这应该有效:
##
desc "Watch files"
##
task :watcher do
Guard.setup
Guard::Dsl.evaluate_guardfile(:guardfile => 'Guardfile', :group => ['Frontend'])
Guard.guards('copy').run_all
end
#end watch files
https://github.com/guard/guard/wiki/Use-Guard-programmatically-cookbook
这是我的完整 Guardfile(与 Rakefile 在同一目录中)
# Any files created or modified in the 'source' directory
# will be copied to the 'target' directory. Update the
# guard as appropriate for your needs.
guard :copy, :from => 'src', :to => 'dist',
:mkpath => true, :verbose => true
但rake watcher
返回错误:
07:02:31 - INFO - Using Guardfile at Guardfile.
07:02:31 - ERROR - Guard::Copy - cannot copy, no valid :to directories
rake aborted!
uncaught throw :task_has_failed
我尝试了不同的 hack,这里就不多说了,但都返回了上面的Guard::copy - cannot copy, no valid :to directories
. 该dist
目录肯定存在。此外,如果我从 shell、rake 内部或在 cmd 行上调用 guard,那么它运行完美,但让我留下了guard >
shell。认为我的问题可能是 rake 文件中的语法错误?任何帮助表示赞赏;)