Обычно с 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'));
})
Я хочу заменить записи динамически созданным отфильтрованным списком файлов, чтобы вместо обновления массива каждый раз, когда я добавляю новый файл, который я хочу просмотреть, он делал это автоматически.
Для этого я начал использовать gulp-filter для выбора файлов, которые я хочу просмотреть в папке:
gulp.src('lib/*.js')
.pipe(gulpFilter('*_specs.js'))
.pipe(concat('specs.js'))
);
Но поскольку это возвращает асинхронный поток, а не массив, вы не можете использовать это вместо записей. Затем я подумал, что могу объединить отдельные файлы в один виртуальный файл, а затем передать его в 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, поэтому любые указатели также будут оценены. Спасибо.