我们的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
来获取新组件,他们就会遇到问题。由于它不介意一个 glob 返回空值(即使它是命名文件),因此 scripts.js
将在没有这些组件的情况下构建。
这应该如何解决?是否有一种方法可以在 glob 返回零结果时抛出错误?