我是gulp和JS的新手。但我有这个gulp文件使用protagonist来验证文件。任务是由其他人编写的,它可以正常工作。现在我需要Protagonist的输出来从解析的结构构建一个文件,但我无法理解脚本应该在哪里得到它。此外,through
包使我更难理解。
为了将函数protagonist.parse()
的结果写入gulp中的文件,我需要做些什么。
Gulp档案
var through = require('through2');
var protagonist = require('protagonist');
gulp.task('protagonist', function () {
gulp.src(paths.build_blueprint)
.pipe(gulpProtagonist({type: 'ast'}))
.on('error', gutil.log);
});
function gulpProtagonist(options) {
return through.obj(function (file, enc, cb) {
protagonist.parse(file.contents.toString(), {type: options.type}, function (error, result) {
if (error) {
return cb(new PluginError('gulp-protagonist', error));
}
try {
if (result['warnings'].length > 0) {
var msgs = result['warnings'].map(buildWarningMsg);
var args = ['error'].concat(msgs.map(genError));
self.emit.apply(self, args);
}
cb(null, file);
} catch (e) {
cb(new PluginError('gulp-protagonist', e));
}
});
});
}