1

この関数からの戻り値はストリームである必要があります。時計なしモードでは簡単です。rebundle を返すだけで、browserify ストリームが変換されます。ただし、監視モードでは、更新ごとに再バンドルが実行され、毎回新しいストリームが作成されます。これらのすべてのストリームを 1 つのエンドレス ストリームに統合する方法が必要です。これらのストリームは、返すことができ、実際に後で消費することができます。結合ストリームで遊んでいると、データが読み取られるとストリームが書き込み可能でなくなるように見えるので、それは無理です。どんな助けでも大歓迎です!

var bundleify = function(watch) {

    var bundler = (watch?watchify:browserify)('main.js');

    var rebundle = function () {
        return bundler.bundle()
            .on('error', console.log)
            .pipe(source('main.js'))
            .pipe(rename('app.js'))
            .pipe(jsTasks()); // lazypipe with other tasks
    };

    // Regular browserify, just return the stream.
    if (!watch) {
        return rebundle();
    }

    // Watchify, rebundle on update.
    bundler.on('update', function() {
        rebundle();
    });

    // return ????
}
4

1 に答える 1