如何在javascript中编写glob来排除和包含文件?

如何在javascript中编写glob来排除和包含文件?,javascript,glob,Javascript,Glob,我编写了以下代码行,其中包含用于从每个文件夹中排除文件的glob: var images = gulp.src(['src/**/*.{png,svg,jpg,gif}', '!src/styles/images/abc/*.svg', '!src/styles/images/pqr/*card*.svg', '!src/styles/images/def/*.svg', '!src/styles/images/xyz/*.svg', '!src/styles/images/*

我编写了以下代码行,其中包含用于从每个文件夹中排除文件的glob:

 var images = gulp.src(['src/**/*.{png,svg,jpg,gif}', '!src/styles/images/abc/*.svg',
    '!src/styles/images/pqr/*card*.svg', '!src/styles/images/def/*.svg', '!src/styles/images/xyz/*.svg',
    '!src/styles/images/*-16.svg', '!src/styles/images/*[!16].svg', '!src/styles/images/svg-16/*.svg', 
    '!src/styles/images/uvw/*.png']).pipe(gulp.dest('build'));
您可以看到,我几乎在所有地方重复
src/style/images
。如何进一步简化这个glob?有没有其他可能的方法让重复路径成为公共路径并添加其他路径

任何帮助和建议都将不胜感激


谢谢。

使用映射是我解决这个问题的想法

var src = ['src/**/*.{png,svg,jpg,gif}']
var stylesimages = [ 'abc/*.svg', 'pqr/*card*.svg', 'table/*.svg', 'xyz/*.svg', '*-16.svg', '*[!16].svg', 'svg-16/*.svg', 
    'uvw/*.png'].map(x => '!src/styles/images/' + x)

src = src.concat(stylesimages)

var images = gulp.src(src).pipe(gulp.dest('build'));

您可以使用
映射
和concat数组,但老实说,您应该修复实际的文件夹结构。@BenjaminGruenbaum是的,我想是的!我也会这么做。非常感谢您给我一个使用地图的想法。:)谢谢。这真的很有帮助。:)