2

通常、Browserify では、多数のファイルを結合する場合は、次のように実行します。

gulp.task('build-tests', function() {
    var b = browserify({
                entries: ['./lib/some_specs.js', './lib/some_more_specs.js']
            });

    b.bundle().pipe(source('specs.js')).pipe(gulp.dest('./dist'));
})

エントリを動的に作成されたフィルター処理されたファイルのリストに置き換えて、新しいファイルを追加するたびに配列を更新する代わりに、Browserified が自動的に行われるようにします。

これを行うために、フォルダーからブラウザー化するファイルを選択するために gulp-filter の使用を開始しました。

gulp.src('lib/*.js')
    .pipe(gulpFilter('*_specs.js'))
    .pipe(concat('specs.js'))
);

ただし、これは配列ではなく非同期ストリームを返すため、これをエントリの代わりに使用することはできません。次に、個別のファイルを 1 つの仮想ファイルに連結し、これを Browserify に渡すことができると考えました。このような:

gulp.task('build-tests', function() {
    var b = browserify(
        gulp.src('lib/*.js')
            .pipe(gulpFilter('*_specs.js'))
            .pipe(concat('specs.js'))
        );

    b.bundle().pipe(source('specs.js')).pipe(gulp.dest('./dist'));
})

しかし、これは未処理のエラー イベントをスローします。おそらく、バンドル メソッドが実行される前にソース ファイルが連結されていないためでしょうか?

それで、誰かが似たようなことやこれらの線に沿って何かを実行した経験があるかどうかを尋ねることにつながりますか? 私はgulpを初めて使用するので、ポインタもいただければ幸いです。ありがとう。

4

1 に答える 1