gulp下静态资源的合并压缩MD5后缀

Posted 前端开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gulp下静态资源的合并压缩MD5后缀相关的知识,希望对你有一定的参考价值。

var gulp = require(‘gulp‘);
var RevAll = require(‘gulp-rev-all‘);
var uglify = require(‘gulp-uglify‘);
var filter = require(‘gulp-filter‘);
var csso = require(‘gulp-csso‘);
var useref = require(‘gulp-useref‘);


gulp.task(‘default‘, function () {

	var jsFilter = filter("**/*.js");
  	var cssFilter = filter("**/*.css");
  	var htmlFilter = filter(‘**/*.html‘);

	var assets = useref.assets();

    var revAll = new RevAll({ 

    	//不重命名文件
    	dontRenameFile: [‘.html‘] ,

    	//无需关联处理文件
    	dontGlobal: [ /^\/favicon.ico$/ ,‘.bat‘,‘.txt‘],

    	//该项配置只影响绝对路径的资源
    	prefix: ‘http://s0.static.server.com‘ 
    });

    return gulp.src([‘staticPreprocessing/src/**‘])
        
        //合并html里面的js/css
        .pipe(htmlFilter)
        .pipe(assets)
        .pipe(assets.restore())
        .pipe(useref())
        .pipe(htmlFilter.restore())

		//压缩js
        .pipe(jsFilter)
        .pipe(uglify()) 
        .pipe(jsFilter.restore())

        //压缩css
        .pipe(cssFilter)
        .pipe(csso())
        .pipe(cssFilter.restore())

    	//加MD5后缀
        .pipe(revAll.revision())

        //输出
        .pipe(gulp.dest(‘staticPreprocessing/dist‘))

        //生成映射json文件
        .pipe(revAll.manifestFile())
        .pipe(gulp.dest(‘staticPreprocessing/dist‘));
});

gulp.task(‘watch‘, function () {
   gulp.watch(‘staticPreprocessing/src/**‘, [‘default‘]);
});

  技术分享

以上是关于gulp下静态资源的合并压缩MD5后缀的主要内容,如果未能解决你的问题,请参考以下文章

使用gulp自动化打包合并前端静态资源(CSSJS文件压缩添加版本号)

gulp教程之静态资源压缩

JS那些事儿——Gulp的入门使用

Gulp:静态资源(css,js)版本控制

gulp是用来干什么的?(概念)

gulp自动化打包及静态文件自动添加版本号