Gulp 如何使用glob忽略以下划线开头的文件?

k2fxgqgv  于 2022-12-08  发布在  Gulp
关注(0)|答案(5)|浏览(175)

我用这个文件配对在大口:

'content/css/*.css'

但是我想只包括那些以下划线开头的文件。有人能告诉我怎么做吗?
代码如下:

gulp.task('less', function () {
    gulp.src('content/less/*.less')
        .pipe(less())
        .pipe(gulp.dest('content/css'));
});
u91tlkcl

u91tlkcl1#

如果Gulp通配符与shell通配符类似:

content/css/[^_]*.css

字符集开头的^表示匹配字符集中**以外的任何字符。

lztngnrs

lztngnrs2#

您可以添加第二个glob,它将过滤带有下划线的文件或文件夹。
对于我使用的忽略文件夹:

gulp.src(['./src/**/*.html', '!**/_*/**'])

'!**/_*/**'将过滤以下划线开头的文件夹。

cuxqih21

cuxqih213#

使用此插件https://github.com/robrich/gulp-ignore

var gulpIgnore = require('gulp-ignore');
var condition = '_*.css'; //exclude condition

gulp.task('less', function() {
  gulp.src('content/less/*.less')
    .pipe(gulpIgnore.exclude(condition))
    .pipe(less())
    .pipe(gulp.dest('/dist/'));
});

我认为gulp支持fileglob而不是full-regex,但是您可以给予content/css/[^_]*.less

9cbw7uwe

9cbw7uwe4#

您可以使用这个正则表达式。

content/css/[^_].*\.css

如有必要,最后添加$

b4qexyjb

b4qexyjb5#

对于那些使用Python的人(像我一样来自Google),正确的答案是:

import glob
glob.glob('content/css/[!_]*.css')

相关问题