什么“!”意味着文件路径?

时间:2015-09-25 22:24:40

标签: gulp

我正在阅读我找到的某人的gulpfile.js,并且遇到了一个我之前在文件路径中看不到的有趣角色; !符号。我试图对此进行一些搜索,但没有任何结果。

gulp.task("min:js", function () {
    gulp.src([paths.js, "!" + paths.minJs], { base: "." })
        .pipe(concat(paths.concatJsDest))
        .pipe(uglify())
        .pipe(gulp.dest("."));
});

这里有!有一些特殊含义吗?

2 个答案:

答案 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/'));
});

希望对你有所帮助。