包含常用功能的 gulpfile.js 2017年08月27日 12:45:24 99人阅读 评论
2017-08-27 12:45
190 查看
相关包安装
建议使用cnpmnpm 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'); });
相关文章推荐
- linux下项目开发中防止重复定义和重复包含的方法 分类: 嵌入式开发学习 2011-06-12 23:45 1393人阅读 评论(0) 收藏
- Linux常用软件 分类: arm-linux-Ubuntu 2013-07-22 16:28 301人阅读 评论(0) 收藏
- sys常用模块小探 分类: python Module 2013-09-13 16:42 339人阅读 评论(0) 收藏
- Android 实现分享功能的方法 分类: Android 2015-07-17 12:07 4人阅读 评论(0) 收藏
- JAVA常用API或编程工具003--实现pdf在线阅读功能之pdf.js
- 输出文件中不包含指定的多个排除词的行内容(双重遍历) 分类: python 小练习 2013-11-22 15:20 605人阅读 评论(0) 收藏
- 常用的位操作:置位、清零与测试 2013-02-09 22:54 1197人阅读 评论(0) 收藏
- ios项目常用模板框架之UITabBar+Nav 分类: ios开发 2015-04-06 20:34 350人阅读 评论(0) 收藏
- ios基础控件之UITextField常用方法汇总 2015-04-08 09:17 188人阅读 评论(0) 收藏
- 【整理】国内cdn常用js公共库地址 分类: cdn cdn公共库 2015-04-09 10:31 82人阅读 评论(0) 收藏
- Linux 最常用命令 分类: B3_LINUX 2012-10-13 11:23 663人阅读 评论(0) 收藏
- ACM 中常用的算法有哪些? 2014-08-21 21:15 40人阅读 评论(0) 收藏
- ubuntu权限管理常用命令 分类: linux ubuntu 学习笔记 2015-07-05 14:15 77人阅读 评论(0) 收藏
- 五大常用算法——分治法,动态规划,回溯法,分支界限法,贪心算法 2015-06-08 16:00 50人阅读 评论(0) 收藏
- SQL常用操作 2015-06-12 12:43 20人阅读 评论(0) 收藏
- Linux系统常用目录操作函数 分类: B3_LINUX 2013-02-18 16:44 486人阅读 评论(0) 收藏
- TextView之二:常用属性 分类: H1_ANDROID 2013-10-30 12:43 3203人阅读 评论(0) 收藏
- Cocos2d-x 3D功能学习笔记 分类: cocos2d代码编写 2015-07-27 18:57 8人阅读 评论(0) 收藏
- [小功能]按阅读数、评论数、评论时间查看首页随笔
- MYSQL常用查命令 分类: 数据库 2010-09-28 13:57 513人阅读 评论(2) 收藏