gulp排除文件的用法

var gulp = require('gulp');
var del = require('del');
var uglify = require('gulp-uglify');
var gutil = require('gulp-util');
var colors = require('colors/safe');
var gulpif = require('gulp-if');

gulp.task('build', function () {
    gutil.log(colors.red('开始压缩js...'));


    gulp.src(['*.js', '!gulpfile.js'])
        .pipe(gulpif('!lang-*.js', uglify()))
        .pipe(gulp.dest('dist'));
});

gulp.task('clean', function () {
    gutil.log(colors.red('开始清空文件'));
    del([
        'dist'
    ])
});

本意是想压缩当前目录下的文件夹,但是要排除掉以lang开头的js文件,但是我查看了一下结果,发现lang开头的js文件也被压缩了,这是为啥呢?

阅读 10.7k
5 个回答
新手上路,请多包涵

在gulp.src数组参数用 !lang-*.js

gulp-if 不支持 'globbing'吧,

自己写个 condition 函数,第一个参数就是文件名,然后根据你是否要 ugligy 返回 true or false;

其实吧,你把这一句拆成两句不行么?

    gulp.src(['*.js', '!gulpfile.js'])
        .pipe(gulpif('!lang-*.js', uglify()))
        .pipe(gulp.dest('dist'));
    gulp.src(['*.js', '!gulpfile.js',"!lang-*.js"])
        .pipe(uglify()))
        .pipe(gulp.dest('dist'));
    gulp.src(["lang-*.js"])
        .pipe(gulp.dest('dist'));
gulp.src(['src/**/*.jpg','src/**/*.png','src/**/*.gif'])

这个能够简写吗

推荐问题
宣传栏