使用Gulp否定文件夹,然后包含同一目录中的单个文件
我正在使用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
.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'])