1-1 gulp 实战
- npm install gulp-htmlmin gulp-imagemin imagemin-pngcrush gulp-minify-css gulp-jshint gulp-uglify gulp-concat gulp-rename gulp-notify --save-dev
gulp配置文件如下
- //在你的项目根目录下创建gulpfile.js,代码如下:
- // 引入 gulp
- var gulp = require('gulp');
- // 引入组件
- var htmlmin = require('gulp-htmlmin'), //html压缩
- imagemin = require('gulp-imagemin'),//图片压缩
- pngcrush = require('imagemin-pngcrush'),
- minifycss = require('gulp-minify-css'),//css压缩
- jshint = require('gulp-jshint'),//js检测
- uglify = require('gulp-uglify'),//js压缩
- concat = require('gulp-concat'),//文件合并
- rename = require('gulp-rename'),//文件更名
- notify = require('gulp-notify');//提示信息
- // 压缩html
- gulp.task('html', function() {
- return gulp.src('src/*.html')
- .pipe(htmlmin({collapseWhitespace: true}))
- .pipe(gulp.dest('./dest'))
- .pipe(notify({ message: 'html task ok' }));
- });
- // 压缩图片
- gulp.task('img', function() {
- return gulp.src('src/images/*')
- .pipe(imagemin({
- progressive: true,
- svgoPlugins: [{removeViewBox: false}],
- use: [pngcrush()]
- }))
- .pipe(gulp.dest('./dest/images/'))
- .pipe(notify({ message: 'img task ok' }));
- });
- // 合并、压缩、重命名css
- gulp.task('css', function() {
- return gulp.src('src/css/*.css')
- .pipe(concat('main.css'))
- .pipe(gulp.dest('dest/css'))
- .pipe(rename({ suffix: '.min' }))
- .pipe(minifycss())
- .pipe(gulp.dest('dest/css'))
- .pipe(notify({ message: 'css task ok' }));
- });
- // 检查js
- gulp.task('lint', function() {
- return gulp.src('src/js/*.js')
- .pipe(jshint())
- .pipe(jshint.reporter('default'))
- .pipe(notify({ message: 'lint task ok' }));
- });
- // 合并、压缩js文件
- gulp.task('js', function() {
- return gulp.src('src/js/*.js')
- .pipe(concat('all.js'))
- .pipe(gulp.dest('dest/js'))
- .pipe(rename({ suffix: '.min' }))
- .pipe(uglify())
- .pipe(gulp.dest('dest/js'))
- .pipe(notify({ message: 'js task ok' }));
- });
- // 默认任务
- gulp.task('default', function(){
- gulp.run('img', 'css', 'lint', 'js', 'html');
- // 监听html文件变化
- gulp.watch('src/*.html', function(){
- gulp.run('html');
- });
- // Watch .css files
- gulp.watch('src/css/*.css', ['css']);
- // Watch .js files
- gulp.watch('src/js/*.js', ['lint', 'js']);
- // Watch image files
- gulp.watch('src/images/*', ['img']);
- });
1-1 gulp 实战的更多相关文章
- 前端构建大法 Gulp 系列 (四):gulp实战
前端构建大法 Gulp 系列 (一):为什么需要前端构建 前端构建大法 Gulp 系列 (二):为什么选择gulp 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gulp专家 前 ...
- Gulp实战和原理解析
Gulp实战和原理解析(以weui作为项目实例)http://i5ting.github.io/stuq-gulp/
- Gulp实战
推荐文章: gulp.js中文网 : http://www.gulpjs.com.cn/ DBPOO : http://www.dbpoo.com/getting- ...
- Gulp实战(二)
一.配置环境 1.基于NodeJs安装Git,npm,gulp 2.安装各类插件 3.参考文档 http://www.tuicool.com/articles/UbaqyyJ http://www.t ...
- 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gulp专家
系列目录 前端构建大法 Gulp 系列 (一):为什么需要前端构建 前端构建大法 Gulp 系列 (二):为什么选择gulp 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gul ...
- 前端构建大法 Gulp 系列 (二):为什么选择gulp
系列目录 前端构建大法 Gulp 系列 (一):为什么需要前端构建 前端构建大法 Gulp 系列 (二):为什么选择gulp 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gul ...
- 前端构建大法 Gulp 系列 (一):为什么需要前端构建
系列目录 前端构建大法 Gulp 系列 (一):为什么需要前端构建 前端构建大法 Gulp 系列 (二):为什么选择gulp 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gul ...
- 教你写gulp plugin
前端开发近两年工程化大幅飙升.随着Nodejs大放异彩,静态文件处理不再需要其他语言辅助.主要的两大工具即为基于文件的grunt,基于流的gulp.简单来说,如果需要的只是文件处理,gulp绝对首选. ...
- 前端构建大法 Gulp 系列
参考: 前端构建大法 Gulp 系列 (一):为什么需要前端构建 前端构建大法 Gulp 系列 (二):为什么选择gulp 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gulp ...
随机推荐
- Lookup component 用法
Lookup component 类似于Tsql的join子句, select a.* ,b.* from dbo.tis a left join dbo. tdes b on a.code=b.co ...
- 初学ReactJS,写了一个RadioButtonList组件
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>React Demo</title> ...
- webapp应用---cordova.js 3.7.0插件安装总结
今天是2014年的最后一天,年终总结什么的就不写了.记录一下今天的工作内容.如果不知道phoneGap,那么就不需要往下看了,phoneGap现在已经叫cordova了,叫什么不重要,重要的是它对we ...
- swift 如何实现点击view后显示灰色背景
有这样一种场景,当我们点击view的时候,需要过0.几秒显示一个灰色或者别的颜色的背景 用button来实现,只有按下去的时候才会出现,往往在快速按下,快速抬起的时候是看不出这个变化的 下边是解决方案 ...
- objective-c 语法快速过(6)内存管理原理
内存管理基本原理(最重要) 移动设备的内存极其有限(iphone 4内存512M),每个app所能占用的内存是有限制的(几十兆而已). 当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不 ...
- JavaScrict中的断言调试
今天在看忍者秘籍的时候,看到一个断言方法.查阅了一下资料,原来javascript中的console也包含这个方法.具体用法如下: <script type="text/javascr ...
- JavaScript(Node.js)+ Selenium自动化测试
Selenium is a browser automation library. Most often used for testing web-applications, Selenium may ...
- angular使用总结
一.是否有必要加入模块化框架 1.Reqruiejs seajs的主要作用 (1)模块化,让代码易于维护. angular本身就是mvc,模块化很清晰,所以这点用不到requirejs (2)可以按需 ...
- SwitchButton 开关按钮 的多种实现方式
刚开始接触开关样式的按钮是在IOS系统上面,它的切换以及滑动十分帅气,深入人心. 所谓的开关按钮,就是只有2个状态:on和off,下图就是系统IOS 7上开关按钮效果. 起初我在android上我只会 ...
- PHP实现实现数字补零格式化
在接支付SDK的时候,第三方回调处理时需要IP,并且IP的需求是:去掉点号,补零到每地址段3位, 如:192168000001 先看看我的实现: <?php $IP = explode ( '. ...