node.js - 为什么gulp.src不像传递文件的完整路径数组?

我试图将gulp.src传递给我想要它处理的文件数组。 这是阵列的原样。

['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的工作方式有关吗? 我用谷歌搜索但无法找到答案。

也许这不是全球化的预期目的,但对我来说它应该以这种方式起作用并不合理。 任何人都能解释一下吗?

morganesque asked 2019-08-13T18:13:17Z
1个解决方案
159 votes

传入完整路径数组时,将独立处理每个文件。 globbing不知道路径的根在哪里(事实上,它根据第一个glob猜测)。 因此,每个文件都以它包含的文件夹为根,并且相对路径为空。

但是,有一个简单的解决方案。 使用密钥base作为第二个参数传递给对象gulp.src,并且所有内容都将具有正确的相对路径:

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(...);
OverZealous answered 2019-08-13T18:13:39Z
translate from https://stackoverflow.com:/questions/21386940/why-does-gulp-src-not-like-being-passed-an-array-of-complete-paths-to-files