Web 应用程序中 grunt 任务的进度

Progress of a grunt task in a web application

我用 grunt 构建了一个应用程序,我目前正在制作一个使用这个应用程序的网络界面(带有节点和 angular)。 我在 NodeJS 中使用 childProcess 创建了一个执行 grunt 任务的按钮:

child_process.exec(my-command-grunt[, options], callback)

它工作正常,但任务需要相当长的时间(~10 秒)。出于这个原因,我当时展示了一个加载程序,但我宁愿有一个进度条。如果有一种方法可以在 运行 时了解 grunt 任务的进度,这将帮助我用网页上的动态进度条替换加载器。

非常感谢!

据我所知,不可能只收到当前 运行 任务的进度百分比。

但还是有办法的! 一个 child_process.exec 将 return ChildProcess 实例。然后您可以访问 stdout 和 stderr 流(通过 child.stdout 和 child.stderr)。这些流是事件发射器,您可以监听 data 事件并使用一些正则表达式来解析此输出。正则表达式可以是 /Running "([^"]*)"/ 这样的东西,然后你可以匹配它的结果并向客户端报告 grunt 的进度。