我们的 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 返回空,即使它是一个命名文件。
这应该如何解决?如果 glob 返回零结果,有没有办法抛出错误?