gulp和webpack的差别:https://www.cnblogs.com/lovesong/p/6413546.html

var gulp = require('gulp');

var del = require('del');
// 常用插件
// 压缩javascript文件,减小文件大小
var uglify = require('gulp-uglify');
// 文件重命名
var rename = require('gulp-rename');
// 压缩css
var cssmin = require('gulp-cssmin');
// 合并javascript文件,减少网络请求
var concat = require('gulp-concat');
//解析sass文件
var sass = require("gulp-sass");
// 压缩图片
var imagemin = require("gulp-imagemin");
// 压缩html
var htmlmin = require('gulp-htmlmin');
// babel es6转化为es5
var babel = require("gulp-babel"); // 用于ES6转化ES5

//开启服务器

var connect = require('gulp-connect');
gulp.task('server', ['default', 'watch'], function() {
    connect.server({
        root: 'dist',
        port: 8080,
        livereload: true
    })
})
gulp.task('watch', function () {
//监听文件变化

gulp.watch('blog/*.html', ['htmlmin']);
 
gulp.watch('blog/**/*.js', ['uglify']);
});
//var livereload = require('gulp-livereload');
gulp.task('default',['cssmin', 'imagemin', 'uglify', 'htmlmin'], function() {
console.log('正确执行该任务')
});

//es6转es5

gulp.task('es6', function() {
    return gulp.src('blog/es6.js')
    .pipe(babel())
    .pipe(gulp.dest('build'))
     .pipe(connect.reload())
})
//压缩css文件
gulp.task('cssmin', function() {
console.log('正确执行css压缩任务')
    return gulp.src('blog/**/*.css')
    .pipe(cssmin())
//  .pipe(rename({suffix:'.min'}))
    .pipe(gulp.dest('dist'));
});
//重命名
gulp.task('uglify', function() {
    return gulp.src("blog/**/*.js")
    .pipe(uglify())
//  .pipe(rename({suffix:'.min'}))
    .pipe(gulp.dest('dist'))
})
//压缩图片
gulp.task('imagemin', function(){
    return gulp.src('blog/images/*')
        .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('htmlmin', function () {
var options = {
removeComments: true,//清除HTML注释
collapseWhitespace: true,//压缩HTML
minifyJS: true,//压缩页面JS
minifyCSS: true//压缩页面CSS
};
return gulp.src('blog/*.html')
.pipe(htmlmin(options))
.pipe(gulp.dest('dist/'))
.pipe(connect.reload())
});
gulp.task('clean', function(){
    del([
        'dist'
    ])
})
//var watch = gulp.watch('app/index.html', ["minify"]);
//watch.on('change', function(event) {
//  console.log('File' + event.path)
//})

gulp的常用插件的更多相关文章

  1. 前端构建之gulp与常用插件

    gulp是什么? http://gulpjs.com/ 相信你会明白的! 与著名的构建工具grunt相比,有什么优势呢? 易于使用,代码优于配置 高效,不会产生过多的中间文件,减少I/O压力 易于学习 ...

  2. 前端构建之gulp与常用插件(转载)

    原博主:幻天芒 原文地址:http://www.cnblogs.com/humin/p/4337442.html gulp是什么? http://gulpjs.com/ 相信你会明白的! 与著名的构建 ...

  3. 前端自动化Gulp工具常用插件

    npm init命令初始化当前文件夹后,在当前文件夹新建gulpfile.js文件.当前目录下的所有操作流都在gulpfile.js文件中定义. gulp自动化 gulp-uglify (JS压缩) ...

  4. Gulp工具常用插件

    gulp-uglify(js压缩) gulp-uglify安装 // npm install --save-dev gulp-uglify 已过时 npm install --save-dev jsh ...

  5. 前端构建工具之gulp_常用插件

    gulp常用插件的使用 今天来看看一下gulp的常用插件的使用 就像gruntjs需要一个Gruntfile.js文件一样,gulp也需要一个文件作为它的主文件,在gulp中这个文件叫做gulpfil ...

  6. 精通gulp常用插件

    本文主要展示的是gulp常用插件的使用方法和用途,通过对插件的熟练运用达到精通gulp.不定期更新.可以到github上面下载DEMO. github地址:lin-xin/gulp-plugins 匹 ...

  7. gulp 常用插件汇总

    2017-07-26更新:图片压缩插件使用gulp-smushit,gulp-smushit压缩率比较大,gulp-imagemin 图片压缩插件压缩率不明显. 见下图压缩率: 1.gulp安装 参照 ...

  8. node和gulp实现前端工程自动化(附:gulp常用插件)

    /** * 1. LESS编译 压缩 合并 * 2. JS合并 压缩 混淆 * 3. img复制 * 4. html压缩 */ // 在gulpfile中先载入gulp包,因为这个包提供了一些APIv ...

  9. gulp常用插件之gulp-eslint使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 ** gulp-eslint**这是一个用于识别和报告在ECMAScript/JavaScript代码中找到的模式的Gulp插件.. 更多使用文档 ...

随机推荐

  1. DHCPv6协议

    DHCPv6协议     1. 定义 IPv6 动态主机配置协议DHCPv6(Dynamic Host Configuration Protocol for IPv6)是针对IPv6编址方案设计,为主 ...

  2. JS键盘事件之键控Div

    自上次做的鼠标拖动Div之后,看到fgm.cc的例子,发现用键盘操控Div貌似也是十分有趣,这些DOM操作随着jquery的没落,虽然渐渐少用了,不过有些DOM操作还是必不可少的.现在是虽然数据为王( ...

  3. noip2018复习计划啊

    需要复习的算法额: exgcd CRT INV dij spfa(~) 矩阵快速幂~高斯消元 tarjan(scc,bcc) treap splay 线段树 dp(决策单调,斜率,四边形不等式) rh ...

  4. chapter05

    /** * Created by EX-CHENZECHAO001 on 2018-03-29. */class Chapter05 { } // 类// 类中的字段自动带有getter方法和sett ...

  5. sql新增字段注意事项

    新增字段的类型.长度(精度)是否合适 解决方法: 跟应用明确加字段和改字段的风险,确认新增字段类型正确.长度(精度)合适. 以及跟应用明确老数据是否要订正?如何订正?新增列是否非空?是否有默认值等等. ...

  6. Ubuntu搜狗输入法乱码情况

    cd ~/.config sudo rm -rf SogouPY* sogou*

  7. SpringMVC(一) 基础知识+入门案例

    SpringMVC基础知识 1.什么是Springmvc 2.springmvc 框架的原理(必须掌握) 前端控制器.处理器映射器.处理器适配器.视图解析器 3.SpringMVC 入门程序 目的:对 ...

  8. JDK 7 API 下载

    JDK 7 API 官方下载地址: http://www.oracle.com/technetwork/java/javase/documentation/java-se-7-doc-download ...

  9. CentOS6.5 环境安装配置

    一.GO环境配置 1.运行命令进入/usr/local/src目录:cd /usr/local/src 2.下载安装包:运行wget --no-check-certificate https://st ...

  10. Teradata 认证系列 - 2. Teradata数据库总览

    Teradata (以下简称TD) 总览本课的学习目标 描述Teradata数据库产品的功能 知晓支持的操作系统 描述Teradata的并行架构 解释线性可扩展性 列出Teradata DBA永远不需 ...