使gulp-usemin仅对非缩小文件进行uglify

时间:2015-07-15 17:12:48

标签: javascript node.js gulp gulp-uglify gulp-usemin

我想将所有Javascript放在一个scripts.js个文件中。以下是我index.html的一部分:

<!-- build:inlinejs js/scripts.js -->
<script src="bower_components/jquery/dist/jquery.min.js"></script>
<script src="bower_components/moment/min/moment.min.js"></script>
<script src="bower_components/moment/locale/de.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="bower_components/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js"></script>
<script src="js/main.js"></script>
<!-- endbuild -->

我目前的Gulp配置如下:

gulp.task('usemin', function () {
  return gulp.src('./*.html')
      .pipe(usemin({
        css: [minifyCss(), 'concat'],
        html: [minifyHtml({empty: true})],
        js: [uglify(), rev()],
        inlinejs: [uglify()],
        inlinecss: [minifyCss(), 'concat'],
        inline: ['concat']
      }))
      .pipe(gulp.dest('dist/'));
});

正如您所看到的,已经存在大量缩小的Javascript文件,因此我不希望我的构建浪费宝贵的时间来整理已经缩小的文件。我该怎么做才能只丑化非缩小文件?

1 个答案:

答案 0 :(得分:1)

我知道这个问题已经被问过了,但我遇到了同样的问题并找到了解决方案。

在你的html中,你可以为构建块命名:

<!-- build:jsLibs js/libs.js -->
<script src="bower_components/jquery/dist/jquery.min.js"></script>
<!-- endbuild -->

<!-- build:jsApp js/app.js -->
<script src="js/main.js"></script>
<!-- endbuild -->

在gulp任务中:

gulp.task('usemin', function () {
    return gulp.src('./*.html')
        .pipe(usemin({
            ...
            jsLibs: ['concat'],
            jsApp: [uglify, rev]
      }))
      .pipe(gulp.dest('dist/'));
});

希望能帮助别人。