juexin

实现的功能包括 js压缩,css文件合并压缩并在html加版本号,压缩html文件

1.安装gulp

建议参考官网就行http://www.gulpjs.com.cn/docs/getting-started/

npm install gulp --save -dev   [注:将gulp安装到项目]

npm init    [注:根据提示一步一步创建package.json 最后yes保存]

添加 gulpfile.js文件 如步骤三

webstrom --》run--》选择运行default  这样就运行gulpfile.js文件了 [注:default,意思名为的default的task,如下]

gulp.task(\'default\', [ \'copy\', \'concat\', \'replace\',\'js\']);

 

2.安装插件 主要用到以下插件

安装命令 npm install gulp-uglify gulp-concat gulp-minify-css gulp-rev gulp-rev-collector gulp-replace gulp-htmlmin  --save -dev

3.gulpfile.js文件:

/**
 * Created by jh on 2017/4/6.
 */
var gulp = require(\'gulp\');
var minify = require(\'gulp-uglify\');                            //- 压缩js;
var concat = require(\'gulp-concat\');                            //- 多个文件合并为一个;
var minifyCss = require(\'gulp-minify-css\');                     //- 压缩CSS为一行;
var rev = require(\'gulp-rev\');                                  //- 对文件名加MD5后缀
var revCollector = require(\'gulp-rev-collector\');               //- 路径替换
var replace = require(\'gulp-replace\');                          //替换地址
var htmlmin = require(\'gulp-htmlmin\');                          //压缩html

/*=====================copy其他静态资源文件==========================*/
gulp.task(\'copy\',  function() {
    return gulp.src([\'images/**/*\'])
        .pipe(gulp.dest(\'dist/images\'))
});
/*=====================压缩js==========================*/
gulp.task(\'js\',function(){
    gulp.src(\'js/*.js\') // 匹配
        .pipe(minify())
        .pipe(gulp.dest(\'dist/js\'));  // 写入 \'dist/js\'
});
//gulp.src(\'js/*.js\', { base: \'client\' })//会把源js也压缩
//    .pipe(minify())
//    .pipe(gulp.dest(\'build\'));  // 写入 \'build/js/somedir/somefile.js\'

/*=====================合并、压缩css==========================*/
gulp.task(\'concat\',function(){
    gulp.src([\'css/style.css\', \'css/style.mine.css\'])    //- 需要处理的css文件,放到一个字符串数组里
        .pipe(concat(\'style.rar.css\'))                            //- 合并后的文件名
        .pipe(minifyCss())                                      //- 压缩处理成一行
        .pipe(rev())                                            //- 文件名加MD5后缀
        .pipe(gulp.dest(\'dist/css\'))                               //- 输出文件本地
        .pipe(rev.manifest())                                   //- 生成一个rev-manifest.json
        .pipe(gulp.dest(\'config\'));                      //- 将 rev-manifest.json 保存到 rev 目录内
});

/*=====================打包、修改地址==========================*/
gulp.task(\'replace\',function(){
    gulp.src([\'config/*.json\',\'*.html\'])
        .pipe(revCollector())    //- 执行文件内css名的替换
        .pipe(replace(\'css/\',\'./css/\'))   //替换地址
        .pipe(htmlmin({collapseWhitespace: true}))
        .pipe(gulp.dest(\'dist\'))
});
//gulp.task(\'replace\',function(){
//    gulp.src([\'config/*.json\', \'*.html\'])   //- 读取 rev-manifest.json 文件以及需要进行css名替换的文件
//        .pipe(revCollector())                                   //- 执行文件内css名的替换
//        .pipe(gulp.dest(\'dist\'));                     //- 替换后的文件输出的目录
//});
//gulp.task(\'city\', [\'js\', \'concat\', \'replace\', \'revCollector\']);

gulp.task(\'city\', [ \'copy\', \'concat\', \'replace\',\'js\']);

  


 

分类:

技术点:

相关文章: