使用Gulp否定文件夹,然后包含同一目录中的单个文件

使用Gulp否定文件夹,然后包含同一目录中的单个文件,gulp,Gulp,我正在使用Gulp,我有一个文件夹,其中有几个.js文件,我只需要其中一个;我阅读了Gulp中的否定文件,根据我的理解,你应该先删除它们,然后再添加它们,以防你不想全部否定它们 我有以下代码,例如: var js_scripts = [ 'js/dev/lib/**/*.js', 'js/dev/plugins/**/*.js', '!js/dev/plugins/fancybox/*.js', 'js/dev/plugins/fancybox/jquery.fa

我正在使用Gulp,我有一个文件夹,其中有几个
.js
文件,我只需要其中一个;我阅读了Gulp中的否定文件,根据我的理解,你应该先删除它们,然后再添加它们,以防你不想全部否定它们

我有以下代码,例如:

var js_scripts = [
    'js/dev/lib/**/*.js',
    'js/dev/plugins/**/*.js',
    '!js/dev/plugins/fancybox/*.js',
    'js/dev/plugins/fancybox/jquery.fancybox-1.3.4.pack.js',
    '!js/dev/plugins/inner/*.js',
    '!js/dev/plugins/jquery.bxslider/**/*.js',
    'js/dev/plugins/jquery.bxslider/jquery.bxslider.min.js',
    // We have to set the bootstrap lines separately as some need to go before others
    'js/dev/bootstrap/collapse.js',
    'js/dev/bootstrap/dropdown.js',
    'js/dev/bootstrap/tab.js',
    'js/dev/bootstrap/transition.js',
    'js/dev/scripts.js'
];

gulp.task('scripts', function() {
    return gulp.src(js_scripts)
        .pipe(sourcemaps.init())
            .pipe(concat('scripts.js'))
        .pipe(sourcemaps.write('../maps'))
        .pipe(gulp.dest('./js'));
});

gulp.task('uglify', ['scripts'], function() {
    return gulp.src(js_scripts)
        .pipe(gulpif('!**/*.min.js', uglify({mangle: false})))
        .pipe(concat('scripts.min.js'))
        .pipe(gulp.dest('./js'));
});
然而,我刚刚注意到,
js/dev/plugins/fancybox/jquery.fancybox-1.3.4.pack.js
js/dev/plugins/jquery.bxslider/jquery.bxslider.min.js
都没有包含在输出文件中,即使我在最初删除后又添加了它们

根据《公约》,它指出:

请注意,GLOB是按顺序计算的,这意味着这是可能的:

因此,我首先包括整个
plugins
目录,然后删除
js/dev/plugins/jquery.bxslider/
中的所有内容,然后重新添加文件
js/dev/plugins/jquery.bxslider/jquery.bxslider.min.js
,那么应该包括该文件吗

我注意到如果我删除了这一行:
!js/dev/plugins/jquery.bxslider/***.js
然后将其包括在内


我做错了什么?

这里有几个问题是关于当涉及否定时,globs的评估顺序没有按预期工作。请特别参阅我之前提到的内容。您是否可以切换到gulp4.0,看看它是否按预期工作——或者。也会对你有用。@Mark谢谢你。4是测试版吗<代码>3.9.1显示为npm上的最新版本。至于
吞咽添加src
;谢谢-很高兴有另一个选择。gulp4可能仍处于测试阶段,但已经有好几年了!!很多人都在使用它,所以…。它确实内置了gulp.series和gulp.parallel,这很好。@mark让它与v4一起工作:)
// exclude every JS file that starts with a b except bad.js
gulp.src(['*.js', '!b*.js', 'bad.js'])