gulp-src忽略除一个文件夹外的所有文件夹中的文件

gulp src ignore files from all folder but one

本文关键字:文件夹 文件 一个 gulp-src      更新时间:2023-09-26

这是我的文件夹结构

views
|
- core
| |
|  -core.module.js
|   core.controller.js
|   some.js
|
- home
  |
  -home.module.js
   home.controller.js
   somemore.js
...
...

在我的gump文件中,我想递归地包括views文件夹中的所有js文件,并从除core 之外的所有文件夹中排除*.controller.js

即从core文件夹中选择所有js文件,并从所有其他文件夹中选择除*.controller.js以外的所有文件

我试过如下,但它也从core文件夹中排除了*.controller.js文件。

gulp.src([
    //include all from all folders
    'views/**/*.js', 
    //exclude *.controller.js from all folders but core (not working)
    '!views/{**, !core}/*.controller.js'
])

使用!() glob模式。来自glob文档:

!(pattern|pattern|pattern)匹配与所提供的任何模式都不匹配的任何模式。

因此,在您的情况下,您可以执行以下操作:

gulp.src([
  'views/**/*.js', 
  '!views/!(core)/**/*.controller.js'
])