如何在gulp任务中仅排除.min.js文件,同时保留在同一目录中?

时间:2016-10-02 09:30:10

标签: javascript node.js gulp wildcard

我正在尝试为我的前端工作设置一个构建系统,虽然我遇到了一遍又一遍地循环处理文件的问题。这是我的js处理的一个问题,因为我不知道如何仅将.min作为后缀排除。

任务如下

return gulp.src(["!dev/js/*.min.js", "dev/js/*.js"])
        .pipe(plumber())
        .pipe(browserify())
        .pipe(smaps.init())
            .pipe(uglyify({preserveComments: "license"}))
        .pipe(smaps.write())
        .pipe(rename({suffix: ".min"}))
        .pipe(gulp.dest(output_dir));

虽然我发现它仍然以.min.js文件为目标,因为它们也被视为.js文件。我已经搞砸了这些通配符的一些不同配置,但我一直在完成创建example.min.js然后example.min.min.js然后example.min.min.min.js等任务循环。

那么,我怎样才能处理不包含.min前缀的文件?

3 个答案:

答案 0 :(得分:8)

您可以使用negated patterns排除.min.js文件。

gulp.src(['dev/js/*.js', '!dev/js/*.min.js'])

答案 1 :(得分:0)

gulp命令中。

const
    gulpIgnore = require( 'gulp-ignore' ),
    uglify = require( 'gulp-uglify' ),
    jshint = require( 'gulp-jshint' ),
    condition = './**/*.min.js';

gulp.task( 'task', function() {
    gulp.src( './**/*.js' )
        .pipe( jshint() )
        .pipe( gulpIgnore.exclude( condition ) )
        .pipe( uglify() )
        .pipe( gulp.dest( './dist/' ) );
} );

condition中指定目录。 ../向后移动,/dir向前移动

答案 2 :(得分:0)

如果只想使用一个字符串,则可以使用:

gulp.src(["dev/js/!(*.min)*.js"])