Javascript gulp缩小已缩小的文件

Javascript gulp缩小已缩小的文件,javascript,gulp,Javascript,Gulp,我尝试用gulp缩小单独的.js文件。比如: file_one.js --> file_one.min.js file_two.js --> file_two.min.js 它在我第一次吞咽的时候起作用。但是如果我再次运行它,它看起来是这样的: file_one.js file_one.min.js file_one.min.min.js file_two.js file_two.min.js file_two.min.min.js gulp.task('scripts', f

我尝试用gulp缩小单独的.js文件。比如:

file_one.js --> file_one.min.js
file_two.js --> file_two.min.js
它在我第一次吞咽的时候起作用。但是如果我再次运行它,它看起来是这样的:

file_one.js 
file_one.min.js
file_one.min.min.js
file_two.js
file_two.min.js
file_two.min.min.js
gulp.task('scripts', function() {
    return gulp.src(['dest/*.js', '!dest/*.min.js'])
        .pipe(rename({ suffix: '.min' }))
        .pipe(uglify())
        .pipe(gulp.dest('dest'));
});
每次我大口大口的时候,它都会重复这种模式。如何阻止它缩小已经缩小的js

我使用以下代码:

gulp.task('scripts', function() {
    return gulp.src('dest/*js')
        .pipe(rename({ suffix: '.min' }))
        .pipe(uglify())
        .pipe(gulp.dest('dest'));
});

发生这种情况是因为您正在将缩小的文件保存在非缩小文件的同一目录中。流的第一部分(
gulp.src
)读取
dest
文件夹中的所有文件。由于您正在将缩小的文件保存到同一个文件夹中,因此它将在第二次运行时再次缩小这些文件。您有一些选择:

  • 将输出文件夹更改为其他文件夹(例如
    gulp.dest('build')
  • 更改
    gulp.src
    以仅匹配未缩小的文件

  • 您可以将缩小的文件放在不同的目录中,也可以将它们排除在
    gulp.src
    中,如下所示:

    file_one.js 
    file_one.min.js
    file_one.min.min.js
    file_two.js
    file_two.min.js
    file_two.min.min.js
    
    gulp.task('scripts', function() {
        return gulp.src(['dest/*.js', '!dest/*.min.js'])
            .pipe(rename({ suffix: '.min' }))
            .pipe(uglify())
            .pipe(gulp.dest('dest'));
    });
    

    您的“复制”有问题,因此需要先删除目标文件才能重新运行该文件。见示例:

    //clean
    gulp.task('clean', function(){
        return del(['dist']);
    });
    
        //Default task
        gulp.task('default',['clean'], function(){
            gulp.start('usemin','imagemin','copy','views');
        });
    

    必须首先在单独的数组中排除缩小的文件:
    gulp.src(['css/*.css'],['!css/*.min.css'])
    ,而不是像这样在一组
    []
    中。这对我有用。谢谢我认为OP要求澄清如何完成你的第2点。i、 e.“匹配未缩小的文件”@RickDavies请阅读评论。这个解决方案对他有效。没有必要投否决票。@MarlonBernardes我确实读过评论,尽管OP接受了你对他真正问题的回答,但根据我上面的评论,我不相信它回答了他最初问题的意图。这是一个开放的论坛,其他人在搜索他的问题的答案(即缩小同一目录中的文件)时可能会对你不满意。我被否决了,也对帕特里克·奥尔兹伯格的答案投了赞成票。那是我的特权。