使用through从gulp任务写入输出文件

时间:2016-07-09 00:07:51

标签: javascript gulp

我是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));
            }
        });
    });
}

0 个答案:

没有答案