2017-01-10 6 views
1

いくつかのgulpファイルを探しています。私は助けることができませんでしたが、ファイルのソースにはgulp.src(...)というタスクのいくつかが使用されていたことに気付きました。しかし、他のタスク(browserifyを使用している場合など)ではvar source = require('vinyl-source-stream'); & .pipe(source('bundle.js'))を使用しました。`gulp.src`と` vinyl-source-stream`ですか?

ストリームタイプはgulpがファイルのソースとして使用するものですが、browserifyが直接使用されていたため、ストリームタイプをgulpと互換性のあるものに変換する必要がありました。しかし、それが本当に事実であれば... buffer = require('vinyl-buffer'); & .pipe(buffer())の理由は、明らかにbuffer()が変換を行うためです。

[REF:https://scotch.io/tutorials/getting-started-with-browserify]

答えて

2

vinyl-source-streamビニルオブジェクトに読み取り可能なストリームを変換します。

vinyl-bufferは、ストリーミングビニルをバッファビニルに変換します。

ビニルオブジェクトはstream or a bufferをラップでき、gulp.destは両方を受け入れます。しかし、いくつかのgulpプラグインはストリーミングビニールを受け入れません。あなたがグッと作業を開始したときに実際には、

ストリーミングサポートされていません

誤差はかなり一般的です。例えば、afaikの場合、ストリーミングビニールをサポートするnodejsミニファイアはありません。そのようなプラグインで現在のストリームを動作させるには、gulp-bufferが必要です。 gulp.srcから生成

ビニルはバッファであるが、読みやすいストリーム(browserify.bundle()が読めるストリームを返す)からvinyl-source-streamで生成されたビニルは、そうvinyl-bufferはuglifyのように、それをいくつかのプラグインを使用する必要があることでしょうではありません。

と一緒に使用するには、実際にはvinyl-bufferは必要ありません。これは本当にシンプルな一気タスクが正常に動作します:uglify()はバッファを期待しているので

gulp.task('browser-ugly' , function(){ 
    return bundler = browserify({ 
      debug: true, 
      entries : './browserify-script.js' 
     }) 
     .bundle() 
     .pipe(source('origin.js')) 
     .pipe(buffer()) //you cannot get rid of this. 
     .pipe(uglify()) 
     .pipe(gulp.dest('./scripts/')); 
}); 

gulp.task('browser' , function(){ 

    return browserify({ 
      debug: true, 
      entries : './browserify-script.js' 
     }) 
     .bundle() 
     .pipe(source('browserify-script.js')) 
     // .pipe(buffer()) //you don't need this, 
     //since gulp-dest accepts both streams and buffers 
     .pipe(gulp.dest('./scripts/')); 

}); 

をしかし、gulp-uglifyプラグインを使用するには、bufferが必要になります。 .pipe(buffer())行を削除すると、uglifyプラグインから「ストリーミングがサポートされていません」というエラーが発生します。

gulp.task('gulp-uglify' , function(){ 

    gulp.src('simple.js') 
    .pipe(uglify()) //no need to buffer() 
    .pipe(gulp.dest('./scripts')); 
}); 
gulp.srcは最初からバッファビニルを生成するので

しかし、あなたは通常、バッファー()ゴクゴクとする必要はありません

関連する問題