我正在阅读我找到的某人的gulpfile.js
,并且遇到了一个我之前在文件路径中看不到的有趣角色; !
符号。我试图对此进行一些搜索,但没有任何结果。
gulp.task("min:js", function () {
gulp.src([paths.js, "!" + paths.minJs], { base: "." })
.pipe(concat(paths.concatJsDest))
.pipe(uglify())
.pipe(gulp.dest("."));
});
这里有!
有一些特殊含义吗?
答案 0 :(得分:11)
我不是Gulp的专家,但是quick search显示它告诉gulp忽略给定的路径。
在带有感叹号的路径前面告诉Gulp要排除该目录。
因此,在您的示例中,应将paths.minJs
排除在Gulp正在执行的任务之外。
实际上它用于根据另一个问题的answer否定一个模式。也就是说,它用于选择与以下模式不匹配的内容。结果,它忽略了模式中的路径。
答案 1 :(得分:0)
除了我上面的评论之外,我在此报道:
请注意,如果您的任务必须将js编译为缩小的js,则您宁愿使用2个不同的文件夹。例如,一个文件夹/ source / js /,其文件以min.js编译成/ dist / js /(或/ public / js /或任何你想要的东西)。
我在大多数项目中经常使用这段代码连接和uglify我的Js文件:
// My task called jsmin depend on another task, assume it is called clean but could be whatever
// That means that until the clean task is not completed, the jsmin task will not be executed.
gulp.task( 'jsmin', ['clean'], function() {
// First I clean the destination folder
del([ 'public/js/*' ]);
// Then I compile all the Js contained in source/js/ into min.js into public/js/
// In my example I concatenate all the Js together then I minimize them.
return gulp.src( 'source/js/*.js' )
.pipe(concat( "js.min.js" ))
.pipe(uglify())
.pipe(gulp.dest('public/js/'));
});
希望对你有所帮助。