node.js - 如何在through2中调用别人的插件?
黄舟
黄舟 2017-04-17 16:15:48
0
0
255

背景
首次写gulp插件,我想写一个gulp插件,根据官方文档,建议使用through2处理Stream流。实现的功能是,将src为svg的文件,先变成png,然后再变成base64,渲染到一个css文件模板。

遇到的问题
不知道如何在through2中调用别人的插件

//index.js
var through       = require('through2');
var svg2png       = require('gulp-svg2png');

function dealWithSVG() {
        if (file.isNull()) {
            return cb(null, file);
        }

        if (file.isStream()) {
            this.emit('error', new GulpError(PLUGIN_NAME, 'Streaming not supported'));
            return cb();
        }

        /* I want to use svg2png() *here* */

        // Other Function
        // ...

        this.push(file);
        cb(null)
    });
}

module.exports = dealWithSVG;
// gulpfile.js
var gulp       = require('gulp');
var dealWithSVG = require('./index');
var svg2png = require('gulp-svg2png')

gulp.task('default', function () {
    return gulp.src('static/*.svg')
        .pipe(dealWithSVG())
        .pipe(gulp.dest('assets'));
});

我的尝试

  1. 如果我直接在*here*处这样写file.pipe(svg2png())会得到另外一个Stream,所以还是回到问题上来,如何处理through中新建的流?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(0)
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート