我有以下脚本输出在我对另一个文件进行更改时呈现的文件的名称:
jade --watch --pretty index.jade
由于我在项目中使用了很多,所以我决定创建一个执行此操作的rake任务。但是当我启动rake任务时,文件会被渲染,但我不再看到输出。
我知道在这种情况下输出以某种方式流式传输到STDOUT,这似乎与执行一个ls
命令的行为不同。
这是我的Rakefile:
desc 'Watch .jade files'
task :watch do
puts `jade --watch --pretty index.jade`
end
答案 0 :(得分:1)
你没有看到任何输出的原因是jade
在运行时会阻塞,只有在你杀死它时才会返回。如果你要杀了它,你会看到puts
生效。
您想要的是使用system
system("jade --watch --pretty index.jade")
哪个会使用您的流程的STDOUT。