分享一下鄙人的gulp压缩文件

package.json

{
     "devDependencies": {
         "gulp": "^3.9.1",
         "gulp-babel": "^7.0.1",
         "gulp-clean": "^0.4.0",
         "gulp-clean-css": "^3.9.3",
         "gulp-htmlmin": "^3.0.0",
         "gulp-imagemin": "^4.1.0",
         "gulp-rename": "^1.2.2",
         "gulp-rev": "^8.1.1",
         "gulp-rev-collector": "^1.3.1",
         "gulp-uglify": "^3.0.0",
         "pump": "^3.0.0"
    },
     "dependencies": {
         "babel-plugin-transform-remove-strict-mode": "^0.0.2",
         "gulp-obfuscate": "^0.2.9",
         "gulp-rename": "^1.2.2",
         "gulp-rev": "^8.1.1",
         "gulp-rev-collector": "^1.3.1",
         "gulp-strip-debug": "^3.0.0",
         "pump": "^3.0.0"
    }
}

gulpfile.js

var gulp = require( 'gulp'),
     htmlmin = require( 'gulp-htmlmin'),
     uglify = require( 'gulp-uglify'),
     clean = require( 'gulp-clean'),
     pump = require( 'pump'),
     imagemin = require( 'gulp-imagemin'),
     babel = require( 'gulp-babel'),
     obfuscate = require( 'gulp-obfuscate'),
     rename = require( 'gulp-rename'), //文件重命名
     rev = require( 'gulp-rev'), //更改版本名
     stripDebug = require( 'gulp-strip-debug'),
     collector = require( 'gulp-rev-collector'), //gulp-rev的插件,用于html文件更改引用路径
     cleanCSS = require( 'gulp-clean-css');

gulp. task( 'htmlmin', function() {
     var options = {
         removeComments: true, //清除HTML注释
         collapseWhitespace: true, //压缩HTML
         minfyJS: true, //压缩JS
         minfyCss: true, //压缩CSS
    };
     return gulp. src([ 'dist/rev-css/*.json', 'dist/rev-js/*.json', 'src/html/*.html']) //- 读取两个rev-manifest.json文件以及需要进行css和js名替换的html文件
        . pipe( htmlmin( options))
        . pipe( collector()) //- 执行文件内css和js名的替换
        . pipe( gulp. dest( 'dist/html'));
});

gulp. task( 'scriptmin', function() {
     return gulp. src( 'src/js/*.js')
        . pipe( babel())
        . pipe( uglify({
             mangle: {
                 toplevel: true
            }
        })) //这个是简单混淆 就是变量变成单个字母
         //      .pipe(uglify()) // 加上下一行 时简单混淆加强一点点 就是变量变成ಠ_ಠ966
         //      .pipe(obfuscate())
        . pipe( stripDebug())
        . pipe( rev())
        . pipe( gulp. dest( 'dist/js'))
        . pipe( rev. manifest())
        . pipe( gulp. dest( 'dist/rev-js'));
})

gulp. task( 'cssmin', function() {
     return gulp. src( 'src/css/*.css')
        . pipe( cleanCSS())
        . pipe( rev())
        . pipe( gulp. dest( 'dist/css'))
        . pipe( rev. manifest())
        . pipe( gulp. dest( 'dist/rev-css'));
});

gulp. task( 'cssmin2', function() {
     return gulp. src( 'src/ddcss/css/*.css')
        . pipe( cleanCSS())
        . pipe( gulp. dest( 'dist/ddcss/css'));
});

//compress PNG/SVG/JPEG/GIF 图片
gulp. task( 'imagemin', function() {
     return gulp. src( 'src/images/*.{png,jpg,gif,jpeg}')
        . pipe( imagemin({
             optimizationLevel: 5, //类型:Number 默认:3 取值范围:0-7(优化等级)
             progressive: true, //类型:Boolean 默认:false 无损压缩jpg图片
             interlaced: true, //类型:Boolean 默认:false 隔行扫描gif进行渲染
             multipass: true //类型:Boolean 默认:false 多次优化svg直到完全优化
        }))
        . pipe( gulp. dest( 'dist/images'));
});

gulp. task( 'watch', function() {
     gulp. watch( 'src/js/*.js', [ 'scriptmin']);
     gulp. watch( 'src/css/*.css', [ 'cssmin']);
     gulp. watch( 'src/html/*.html', [ 'htmlmin']);
});

gulp. task( 'clean', function() {
     return gulp. src( 'dist', {
             read: false
        })
        . pipe( clean())
});

gulp. task( 'default', [ 'scriptmin', 'cssmin', 'imagemin'], function() {
     gulp. start( 'htmlmin');
});

gulp. task( 'defaultD', [ 'clean'], function() {
     return gulp. start( 'scriptmin', 'cssmin', 'htmlmin');
});

.babelrc

{
"presets": [
"es2015"
],
"plugins": [ "transform-remove-strict-mode"]
}

文件路径


没有讲解 自己去查

猜你喜欢

转载自blog.csdn.net/weixin_38641550/article/details/80778898