CSS minify and rename with gulp

后端 未结 3 1060
走了就别回头了
走了就别回头了 2021-02-01 15:59

I\'ve a variable like

var files = {
    \'foo.css\': \'foo.min.css\',
    \'bar.css\': \'bar.min.css\',
};

What I want the gulp to do for me is

相关标签:
3条回答
  • 2021-02-01 16:45

    You should be able to select any files you need for your src with a Glob rather than defining them in an object, which should simplify your task. Also, if you want the css files minified into separate files you shouldn't need to concat them.

    var gulp = require('gulp');
    var minify = require('gulp-minify-css');
    var rename = require('gulp-rename');
    
    gulp.task('minify', function () {
        gulp.src('./*.css')
            .pipe(minify({keepBreaks: true}))
            .pipe(rename({
                suffix: '.min'
            }))
            .pipe(gulp.dest('./'))
        ;
    });
    
    gulp.task('default', ['minify'], function() {
    
    });
    
    0 讨论(0)
  • 2021-02-01 16:56

    This is what I have done

    var injectOptions = {
         addSuffix: '?v=' + new Date().getTime()
    };
    

    Then

    return gulp.src('*.html')
        .pipe(wiredep(options))
        .pipe(inject(injectSrc, injectOptions))
        .pipe(gulp.dest(''));
    

    end result is unique timestamp added

    Example in index.html

       <script src="/public/js/app.js?v=1490309718489"></script>
    
    0 讨论(0)
  • 2021-02-01 17:04

    I tried the earlier answers, but I got a never ending loop because I wasn't ignoring the files that were already minified.

    First use this code which is similar to other answers:

    //setup minify task
    var cssMinifyLocation = ['css/build/*.css', '!css/build/*.min.css'];
    gulp.task('minify-css', function() {
      return gulp.src(cssMinifyLocation)
        .pipe(minifyCss({compatibility: 'ie8', keepBreaks:false}))
        .pipe(rename({ suffix: '.min' }))
        .pipe(gulp.dest(stylesDestination));
    });
    

    Notice the '!css/build/*.min.css' in the src (i.e. var cssMinifyLocation)

    //Watch task
    gulp.task('default',function() {
        gulp.watch(stylesLocation,['styles']);
        gulp.watch(cssMinifyLocation,['minify-css']);
    });
    

    You have to ignore minified files in both the watch and the task.

    0 讨论(0)
提交回复
热议问题