包含常用功能的 gulpfile.js
相关包安装
建议使用cnpm
npm install --save-dev *****
其中 ***** 部分表示所需要的包模块,如 gulpfile 中的 require('gulp-useref') 需要之前进行包安装如下:
npm install --save-dev gulp-useref
源文件需要的包安装命令如下
npm install --save-dev gulp gulp-useref gulp-notify gulp-minify-css gulp-concat gulp-css-spriter
npm install --save-dev gulp-clean gulp-cache gulp-imagemin gulp-rename gulp-uglify browser-sync
npm i gulp-htmlmin --save-dev
npm install jshint gulp-jshint --save-dev
源文件结构
下面是 gulpfile 中默认的源文件结构
—— app
—— css // 储存css文件
—— **
—— * .css
—— * .css
—— images // 储存图片
—— * .png
—— * .jpg
—— * .gif
—— script // 储存js文件
—— **
—— * .js
—— * .js
—— sprite // 储存要合成雪碧图的文件
—— * .png
—— * .jpg
—— * .gif
—— **
—— *.html
—— *.html
命令行命令
gulp clean
清除dist文件夹中的内容
gulp serve
网页热加载
gulp html
更改html中的路径 并 压缩html
需要在html文件里面添加代码形式如下
<!-- build:<type>(alternate search path) <path> <parameters> -->
... HTML Markup, list of script / link tags.
<!-- endbuild -->
如
<!-- build:css css/combined.css -->
<link href="css/one.css" rel="stylesheet">
<link href="css/two.css" rel="stylesheet">
<!-- endbuild -->
gulp CSS
合并CSS文件
雪碧图合并
注意: 不需要的合并的需在css中添加注释如下
@meta {"spritesheet": {"include": false}}
压缩CSS文件
gulp script
合并 js 文件并进行压缩
gulp imgMin
图片压缩
gulp (default)
压缩并合并源文件 并 输出到 dist 文件夹
源码
var gulp = require('gulp'),
useref = require('gulp-useref'), // html 路径替换
notify = require('gulp-notify'), // 提示信息
htmlmin = require('gulp-htmlmin'), // html 压缩
minifyCSS = require('gulp-minify-css'), // css 压缩
concat = require('gulp-concat'), // 文件合并
spriter = require('gulp-css-spriter'), // 雪碧图
clean = require('gulp-clean'), // 清除原有文件
cache = require('gulp-cache'),
imagemin = require('gulp-imagemin'), // 图片压缩
// pngcrush = require('imagemin-pngcrush'),
rename = require('gulp-rename'), // 文件重命名
uglify = require('gulp-uglify'), // js 压缩
jshint = require('gulp-jshint'), // js 检测
browserSync = require('browser-sync'), // 浏览器刷新
reload = browserSync.reload;
// html 相关操作
/* 替换路径
*
* 需要在文件里面添加下面的
* <!-- build:<type>(alternate search path) <path> <parameters> -->
* ... HTML Markup, list of script / link tags.
* <!-- endbuild -->
*
* 如
* <!-- build:css css/combined.css -->
* <link href="css/one.css" rel="stylesheet">
* <link href="css/two.css" rel="stylesheet">
* <!-- endbuild -->
*
*/
gulp.task('clean',function(){
return gulp.src('./dist')
.pipe(clean())
.pipe(notify('清除原有文件'))
})
gulp.task('html',function(){
return gulp.src('app/**/*.html')
.pipe (useref())
.pipe(htmlmin({collapseWhitespace: true}))
.pipe(gulp.dest('dist/'))
});
// css 相关操作
/* 合并CSS文件
*
* 雪碧图合并
* 注意: 不需要的合并的需在css中添加注释如下
* @meta {"spritesheet": {"include": false}}
*
* 压缩CSS文件
*
*/
gulp.task('CSS',function(){
return gulp.src('./app/css/**/*.css')
.pipe(concat('main.css'))
.pipe(notify('css 合并完成'))
.pipe(spriter({
// 雪碧图的名称
'spriteSheet' : "./dist/images/sprite_css_img.png",
// 原图文件文件储存位置
// 输出的雪碧图位置
'pathToSpriteSheetFromCSS' : '../images/sprite_css_img.png'
}))
.pipe(notify('spriter 合并完成'))
// 压缩
.pipe(minifyCSS())
// 更改css 并写入
.pipe(gulp.dest('./dist/css'))
.pipe(notify('css 部分完成'))
});
// js 相关操作
gulp.task('script',function(){
return gulp.src('./app/script/**/*.js')
// .pipe(jshint('.jshintrc'))
// .pipe(jshint.reporter('default'))
.pipe(concat('main.js'))
.pipe(gulp.dest('./dist/script'))
.pipe(rename({suffix: '.min'}))
.pipe(uglify())
.pipe(gulp.dest('./dist/script'))
.pipe(notify('js 部分完成'))
});
// 图片品质压缩
gulp.task('imgMin',function(){
return gulp.src('./app/images/**/*')
.pipe(cache(imagemin({ optimizationLevel: 5, progressive: true, interlaced: true })))
.pipe(gulp.dest('./dist/images/'))
.pipe(notify('图片压缩部分完成'))
})
// 网页热加载
gulp.task('serve',function(){
browserSync({
server : {
baseDir : 'app'
}
});
gulp.watch(['**/*.html','css/**/*.css','scripts/**/*.js'],{cwd: 'app'},reload);
});
gulp.task('default',['clean'],function(){
gulp.start('html','script','CSS','imgMin');
});
包含常用功能的 gulpfile.js的更多相关文章
- 160229-01、web页面常用功能js实现
web页面常用功能js实现 1.网页未加载时弹出新窗口 <body onunload="window.open('http://www.a68.cn');">< ...
- es6常用功能与异步详解(JS高级面试题)
callback hell方法的使用 可读性不友好 function loadImg(src,callback,fail){ var img = document.createElement('img ...
- Google Chrome调试js代码,开发者工具之调试工具常用功能
参考:Google Chrome调试js代码-http://www.open-open.com/lib/view/open1384785324165.html 重点:左下角一个{}括号图标按钮用于把杂 ...
- js实现第一次打开网页弹出指定窗口(常用功能封装很好用)
js实现第一次打开网页弹出指定窗口(常用功能封装很好用) 一.总结 1.常用功能封装:之前封装的cookie的操作函数非常好用,我自己也可以这么搞 二.js实现第一次打开网页弹出指定窗口 练习1:第一 ...
- [转]WebPack 常用功能介绍
概述 Webpack是一款用户打包前端模块的工具.主要是用来打包在浏览器端使用的javascript的.同时也能转换.捆绑.打包其他的静态资源,包括css.image.font file.templa ...
- WebPack常用功能介绍
概述 Webpack是一款用户打包前端模块的工具.主要是用来打包在浏览器端使用的javascript的.同时也能转换.捆绑.打包其他的静态资源,包括css.image.font file.templa ...
- JavaScript 常用功能总结
小编吐血整理加上翻译,太辛苦了~求赞! 本文主要总结了JavaScript 常用功能总结,如一些常用的JS 对象,基本数据结构,功能函数等,还有一些常用的设计模式. 目录: 众所周知,JavaScri ...
- 从零开始学习jQuery (十) jQueryUI常用功能实战
一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案, 即使你会使用jQuery也能在阅读中发现些许秘籍. 本文是实战篇. 使用jQueryUI完成制作网站 ...
- 开源三维地球GIS引擎Cesium常用功能的开发
Cesium是一个非常优秀的三维地球GIS引擎(开源且免费).能够加载各种符合标准的地图图层,瓦片图.矢量图等都支持.支持3DMax等建模软件生成的obj文件,支持通用的GIS计算:支持DEM高程图. ...
随机推荐
- mac下,mysql5.7.18连接出错,错误信息为:Access denied for user 'root'@'localhost' (using password: YES)
mac下,mysql5.7.18连接出错,错误信息为:Access denied for user 'root'@'localhost' (using password: YES)()里面的为shel ...
- 理解梯度下降法(Gradient Decent)
1. 什么是梯度下降法? 梯度下降法(Gradient Decent)是一种常用的最优化方法,是求解无约束问题最古老也是最常用的方法之一.也被称之为最速下降法.梯度下降法在机器学习中十分常见,多用 ...
- java用户界面——加载图片 jpg GIF
java用户界面--加载图片 jpg GIF 代码如下: package day08; import java.awt.GridLayout; import javax.swing.Icon;impo ...
- c++调用python系列(1): 结构体作为入参及返回结构体
最近在打算用python作测试用例以便对游戏服务器进行功能测试以及压力测试; 因为服务器是用c++写的,采用的TCP协议,当前的架构是打算用python构造结构体,传送给c++层进行socket发送给 ...
- Jmeter之处理session、cookie以及如何做关联
具体描述问题之前,我们先了解下session.cookie session.cookie的概念 1.session是放在服务器上的,过期与否取决于服务期的设定,cookie是存在客户端的,过去与否可以 ...
- 初始jvm(一)---jvm内存区域与溢出
jvm内存区域与溢出 为什么学习jvm 木板原理,最短的一块板决定一个水的深度,当一个系统垃圾收集成为瓶颈的时候,那么就需要你对jvm的了解掌握. 当一个系统出现内存溢出,内存泄露的时候,因为你懂jv ...
- R语言 write.xlsx() 写入同一excel,及同一sheet注意
write.xlsx(x, file, sheetName="Sheet1", col.names=TRUE, row.names=TRUE, append=FALSE, show ...
- MongoDB入门命令
查看所有数据库 > show dbs admin (empty) local 0.078GB > admin和管理相关, admin和local数据库不要轻易动 选择库 > use ...
- 数据结构随笔-php实现栈
栈(Stack)满足后进先出(LIFO)的原则: 下面利用php实现栈的相关操作: 本实例栈的基本操作: 入栈(push):向栈内压入一个元素,栈顶指针指向栈顶元素 出栈(pop): 从栈顶去除元素, ...
- 八数码问题+路径寻找问题+bfs(隐式图的判重操作)
Δ路径寻找问题可以归结为隐式图的遍历,它的任务是找到一条凑够初始状态到终止问题的最优路径, 而不是像回溯法那样找到一个符合某些要求的解. 八数码问题就是路径查找问题背景下的经典训练题目. 程序框架 p ...