Gulp 吞咽丑陋-覆盖丑陋的文件

Gulp 吞咽丑陋-覆盖丑陋的文件,gulp,glob,Gulp,Glob,我有一个吞咽任务来丑化我的JS: gulp.task('uglify', ['eslint'], () => { return gulp.src(jsDest + '/*.js') .pipe(rename({suffix: '.min'})) .pipe(stripDebug()) .pipe(uglify()) .pipe(gulp.dest(jsDest)); }); 它工作得很好,但由于我使用通配符来标识JS文件,我最终得到了名为name.mi

我有一个吞咽任务来丑化我的JS:

gulp.task('uglify', ['eslint'], () => {
  return gulp.src(jsDest + '/*.js')
    .pipe(rename({suffix: '.min'}))
    .pipe(stripDebug())
    .pipe(uglify())
    .pipe(gulp.dest(jsDest));
});
它工作得很好,但由于我使用通配符来标识JS文件,我最终得到了名为
name.min.min.JS的新文件,而不是覆盖现有的缩小文件

我想出的一个解决办法是在我再次丑陋之前,有一个额外的任务来清理这些文件:

gulp.task('cleanUglified', () => {
  return del.sync('dist/js/*.min.js');
});

gulp.task('uglify', ['cleanUglified', 'eslint'], () => {
...
});

虽然这样做很好,但我确信一定有办法让我的任务忽略任何名为
*.min*
的文件,实际上覆盖任何已存在的文件。

已解决-我可以忽略已缩小的文件,并通过使用此模式选择要修改的文件来覆盖它们:

return gulp.src(jsDest+'/*[^.min].js')

编辑

根据以下评论,我已更新至:


返回gulp.src(['*.js','!*.min.js'])

这是错误的,不会像您认为的那样执行
[^.min]
分别对所有四个字符
m
i
n
进行求反。这意味着名为
main.js
(以
n.js
结尾)或
zoom.js
(以
m.js
结尾)的文件根本不会缩小。关于如何正确解决此问题,请参见相同的问题。