简而言之,我想知道的是,是否有办法获取Grunt输出并在我的Gruntfile中访问它,以便能够发出http POST请求。
长形式:我想从Grunt(karma和jshint)运行测试中获取数据,并利用karma和jshint在post请求中是通过还是失败。是否有可能轻松完成这项工作?或者我是否需要做一些事情,比如将Grunt的输出写入文件,解析它,然后使用类似grunt.file的内容将数据读入我的Gruntfile?
感谢您的帮助。
答案 0 :(得分:0)
Grunt使用grunt.log对象中的方法来编写日志消息。正如您在sources中看到的那样,grunt.log
现已在单独的模块grunt-legacy-log
中实施。所以无论如何,我们可以从Gruntfile内部重新定义这些方法,以使用我们想要的日志执行任何操作。
首先,通过npm:
安装grunt-legacy-log
npm install grunt-legacy-log
然后,像这样重新定义grunt.log
:
module.exports = function (grunt) {
var Log = require('grunt-legacy-log').Log;
var log = new Log({grunt: grunt});
function LogExtended() {
for (var methodName in log) {
if (typeof log[methodName] === 'function') {
this[methodName] = (function (methodName) {
return function () {
var args = Array.prototype.slice.call(arguments, 0);
// Filter methods yourself here to collect data
// and perform any actions like POST to server
console.log(methodName, args);
// This will call original grunt.log method
return log[methodName].apply(log, args);
}
}(methodName));
}
}
}
LogExtended.prototype = log;
grunt.log = new LogExtended();
grunt.initConfig({ .. });
};
那就是它。希望您能收集所需的数据并自行编写动作。