一旦Grunt任务完成,我想打印出一些信息.请参阅下面的Grunt片段.
有没有办法实现这个目标?我注意到grunt.task.run()不支持回调.这会导致在覆盖报告输出之前打印出我的消息.
grunt.registerTask('coverage','Runs all unit tests available via Mocha and generates code coverage report',function() { grunt.task.run('env:unitTest','mochaTest'); grunt.log.writeln('Code coverage report was generated into "build/coverage.html"'); });
我还想避免“hacks”,例如创建一个grunt任务,只是为了打印信息并将其添加到grunt.task.run()任务链.
解决方法
有一种更好的方法可以做到这一点,无需创建额外的任务,也可以修改其他任何内容.
Grunt是一个节点进程,因此您可以:
>使用进程标准输出来编写您需要的内容
>订阅进程退出事件以在任务完成执行时执行此操作
这是一个简单的示例,它打印出任务完成执行的时间:
module.exports = function (grunt) { // Creates a write function bound to process.stdout: var write = process.stdout.write.bind(process.stdout); // Subscribes to the process exit event... process.on("exit",function () { // ... to write the information in the process stdout write('\nFinished at ' + new Date().toLocaleTimeString()+ '\n'); }); // From here,your usual gruntfile configuration,without changes grunt.initConfig({
当您运行任何任务时,您会在底部看到一条消息,如:
Finished at 18:26:45