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

How do I exclude only .min.js files in gulp task, while staying in same directory?

我正在尝试为我的前端工作设置一个构建系统,尽管我 运行 遇到了一个问题,它一遍又一遍地循环处理文件。这是我的 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 前缀的文件呢?

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

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

在您的 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 前进

如果你只想在一个字符串中完成,你可以使用:

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