为什么gulp.src不喜欢被传递给文件的完整path数组?

我试图通过gulp.src我想要处理的文件数组。 这是arrays。

['bower_components/jquery/jquery.js', 'bower_components/superscrollorama/js/greensock/TweenMax.min.js', 'bower_components/superscrollorama/jquery.superscrollorama.js' ] 

我发现,虽然gulp.src似乎并不喜欢,第三个元素并没有达到最终的目的地。

我发现一切正常,当我介绍这样的通配符:

 ['bower_components/**/jquery.js', 'bower_components/**/js/greensock/TweenMax.min.js', 'bower_components/**/jquery.superscrollorama.js' ] 

但为什么? 与globbing方式有什么关系? 我GOOGLE了,但无法find。

也许这不是globbing的预期目的,但对我来说,它应该以这种方式工作是没有意义的。 任何人都可以点亮一下吗?

当你传递完整path数组时,每个文件都是独立处理的。 globbing不知道path的根在哪里(实际上,它猜测基于第一个glob)。 因此,每个文件都是在它所包含的文件夹中生成的,相对path是空的。

但是,有一个简单的解决scheme。 将密钥base的对象作为gulp.src的第二个参数gulp.src ,并且所有内容都将具有正确的相对path:

 return gulp.src(['bower_components/jquery/jquery.js', 'bower_components/superscrollorama/js/greensock/TweenMax.min.js', 'bower_components/superscrollorama/jquery.superscrollorama.js' ], {base: 'bower_components/'}) .pipe(...);