gulp的使用2
来源:互联网 发布:网络伤感情歌2016 编辑:程序博客网 时间:2024/05/17 03:49
结合我平时的工作,我把gulp重新整理了一份新的,增加了一些新的功能
'use strict';
//载入gulp核心包
const gulp = require("gulp");
const concat = require('gulp-concat');
const uglify = require('gulp-uglify');
const imagemin = require('gulp-imagemin');
const connect = require("gulp-connect");
const htmlmin = require("gulp-htmlmin");
const babel = require("gulp-babel");
const browserSync = require('browser-sync');
const reload = browserSync.reload;
const cache = require('gulp-cache');
const clean = require('gulp-clean');
const assetRev = require("gulp-asset-rev");
var base64 = require('gulp-base64');
var notify = require('gulp-notify');
var path = {
HTML: "src/*.html",
CSS: "src/css/*.css",
JS: "src/js/*.js",
Images: 'src/images/*.*'
};
//gulp是用来帮我们执行一些重复操作
//如何定义一个任务
//第一个参数是任务名,第二个参数是任务的执行体
gulp.task('dest', function() {
//文件copy
gulp.src('src/**/*.*') //src下面所有目录文件
//让文件流走向下一个环节
.pipe(gulp.dest('dist/')); //dest指定文件输出地方
});
//清除
gulp.task("clean", function() {
return gulp.src('dist/*')
.pipe(clean());
});
//压缩html
gulp.task("htmlmin", function() {
var options = {
removeComments: true, //清除HTML注释
collapseWhitespace: true, //压缩HTML
collapseBooleanAttributes: true, //省略布尔属性的值 <input checked="true"/> ==> <input />
removeEmptyAttributes: true, //删除所有空格作属性值 <input id="" /> ==> <input />
removeScriptTypeAttributes: true, //删除<script>的type="text/javascript"
removeStyleLinkTypeAttributes: true, //删除<style>和<link>的type="text/css"
minifyJS: true, //压缩页面JS
minifyCSS: true //压缩页面CSS
};
gulp.src('src/*.html')
.pipe(htmlmin(options))
.pipe(gulp.dest('dist'));
});
//ES6转ES5
gulp.task("babelIt", function() {
return gulp.src("src/js/main.js") // ES6 源码存放的路径
.pipe(babel({ presets: ['es2015'] }))
.pipe(gulp.dest("dist/js"))
.pipe(browserSync.stream()); //转换成 ES5 存放的路径
});
//HTML 代码复用实践
var fileinclude = require('gulp-file-include');
gulp.task('fileinclude', function() {
return gulp.src('src/**.html')
.pipe(fileinclude({
prefix: '@@',
basepath: '@file'
}))
.pipe(gulp.dest('dist'));
});
//压缩js并增加版本号
gulp.task("jsmins", function() {
return gulp.src(['src/js/*.js'])
.pipe(uglify())
.pipe(assetRev())
.pipe(gulp.dest('dist/js'))
.pipe(browserSync.stream());
});
//增加css的版本号并把小于20kB的图片64位编码
gulp.task('revCss', function() {
return gulp.src('src/css/*.css')
.pipe(base64({
baseDir: 'src/css',
extensions: ['png', 'jpg'],
maxImageSize: 20 * 1024, // bytes
debug: false
}))
.pipe(assetRev())
.pipe(gulp.dest('dist/css/'))
.pipe(browserSync.stream());
});
//压缩新增的图片
gulp.task('imagemin', function() {
return gulp.src('src/images/*')
.pipe(cache(imagemin({ optimizationLevel: 5, progressive: true, interlaced: true })))
.pipe(gulp.dest('dist/images'))
.pipe(browserSync.stream());
});
//html复用生成并添加版本号
gulp.task('rev', ['revCss', 'jsmins', 'imagemin'], function() {
return gulp.src("src/*.html")
.pipe(fileinclude({
prefix: '@@',
basepath: '@file'
}))
.pipe(assetRev())
.pipe(gulp.dest('dist'))
.pipe(browserSync.stream());
});
//保存即刷新起新的服务器
gulp.task('server', function() {
browserSync({
server: {
baseDir: 'src'
}
});
// gulp.watch(path.CSS, ["revCss"]);
// gulp.watch(path.JS, ["revJs"]);
// gulp.watch(path.HTML, ["rev"]);
// gulp.watch(path.Images, ["imagemin"]);
gulp.watch("src/**/*.*").on('change', browserSync.reload);
});
gulp.task('build', ['clean'], function() {
gulp.start('rev', 'server', function() {
console.log('tasks complete');
});
});
- gulp的使用2
- hello gulp,使用gulp的第一天。
- gulp的使用
- gulp的学习使用
- gulp的使用
- gulp的使用
- gulp的使用
- Gulp的使用
- gulp的使用
- gulp的简单使用
- gulp的使用教程
- gulp的使用
- gulp工具的使用
- gulp 的 安装使用
- gulp工具的使用
- gulp的使用
- gulp的使用
- gulp的使用
- android xml布局文件中使用RelativeLayout,明明有这个id,却提示找不到---->解决办法
- 某openstack公司面试经历
- 输入正整数k,找到所有的正整数x>=y,使得1/k=1/x + 1/y; 样例输入: 2 12 样例输出: 2 1/2 = 1/6 + 1/3 1/
- redis持久化RDB和AOF
- postgresql的一些使用技巧
- gulp的使用2
- JAVA复制文件最快速的方法:用文件通道的方式来进行文件复制
- 使用Json时,由于缺少jar包导致可能出现的所有异常的总结
- Gradle 调用java
- HDOJ 5204 Rikka with sequence
- hbase命令梳理
- dedecms 文章按权重排序问题
- java 使用comet4j向客户端主动推送例子
- Java 基础