Наша сборка gulp берет кучу библиотек, установленных с помощью bower, а затем объединяет их со всем кодом, который мы распространяем в нескольких каталогах. Вот как это выглядит:
var jsFiles = [
sourcePath + '/config/config.js',
sourcePath + '/vendor/jquery/dist/jquery.js',
sourcePath + '/vendor/js-cookie/src/js.cookie.js',
sourcePath + '/vendor/modernizr/modernizr.js',
sourcePath + '/vendor/lodash/lodash.js',
sourcePath + '/vendor/picturefill/dist/picturefill.min.js',
sourcePath + '/templates/**/*.js',
sourcePath + '/pages/**/*.js'
],
gulp.task('build:js', ['jscs'], function() {
return gulp.src(jsFiles)
.pipe(concat('scripts.js'))
.pipe(gulpif(isProd, uglify()))
.pipe(gulp.dest(outputPath + '/webresources/js'));
});
Наша проблема заключается в том, что всякий раз, когда кто-то добавляет новые библиотеки, другие разработчики будут сталкиваться с проблемами, если они не запускают bower install
для получения новых компонентов. scripts.js
создается без них, поскольку он не будет возражать, что один из глобусов возвращается пустым, даже если это именованный файл.
Как это можно решить? Есть ли способ выбросить ошибку, если glob возвращает нулевые результаты?