gulp的初阶使用方法(转)
安装好gulp之后接下来就是使用了,此文主要介绍一些前端开发时常用的一些插件及其用法
http://www.imooc.com/article/tag/26/hot/12
插件安装
安装本地服务器插件:cnpm install gulp-connect --save-dev
安装合并文件插件:cnpm install gulp-concat --save-dev
安装压缩js文件插件:cnpm install gulp-uglify --save-dev
安装重命名插件:cnpm install gulp-rename --save-dev
安装压缩css文件插件:cnpm install gulp-minify-css --save-dev
优化图像文件的尺寸,在不改变图像质量的情况下,最小化图像大小:
cnpm install gulp-imagemin --save-dev
插件引入
在gulpfile.js的顶部引入
var gulp = require('gulp');//将gulp插件包含进来
var sass = require('gulp-sass'); //包含sass转换为css插件
var less = require('gulp-less'); //包含less转换为css插件
var connect = require('gulp-connect'); //包含服务器插件
var concat = require('gulp-concat');//合并文件
var uglify = require('gulp-uglify');//压缩js
var rename = require('gulp-rename');//重命名文件
var minifyCSS = require('gulp-minify-css');//压缩css
var imagemin = require('gulp-imagemin');//优化图片
插件用法
1.复制文件到指定文件夹
//复制文件到指定文件夹
gulp.task('copy-index',function(){
return gulp.src('index.html')
.pipe(gulp.dest('dist'))
.pipe(connect.reload());
});
2.复制图片到指定文件夹
gulp.task('images',function(){
return gulp.src('images/*.jpg')
//.pipe(imagemin()) //未成功
.pipe(gulp.dest('dist/images'));
//images/**/* images目录下的所有子目录和所有东西(包含东西最多)
//images/*/* images目录下的东西和子目录下的东西
//images/*.{png,jpg} images目录下的所有以png和jpg为后缀名的图片
});
3.多个数据文件复制(后面的目录可以不存在,不存在的话会自动创建),在前面加叹号是排除这个(类)文件
gulp.task('data',function(){
return gulp.src(['xml/*.xml','json/*.json','!json/secre-*.json']).pipe(gulp.dest('dist/data'));
});
4.创建依赖任务
gulp.task('build',['copy-index','images','data'],function(){
console.log('编译成功!');
});
5.创建监听任务
gulp.task('watch',function(){
//当文件发生变化时,自动执行相应的任务
gulp.watch('index.html',['copy-index']);
gulp.watch('images/**/*.{jpg,png}',['images']);
gulp.watch(['xml/*.xml','json/*.json','!json/secre-*.json'],['data']);
});
6.将sass文件编译成css
gulp.task('sass',function(){
return gulp.src('stylesheets/**/*.scss')
.pipe(sass()) //上面定义的名字 var sass
.pipe(gulp.dest('dist/css'));
});
7.将less文件编译成css
gulp.task('less',function(){
return gulp.src('stylesheets/**/*.less')
.pipe(less()) //上面定义的名字 var sass
.pipe(minifyCSS()) //最小化css,去掉了注释和多余的空格
.pipe(gulp.dest('dist/css'));
});
8.设置默认任务
//退出任务监听:Ctrl + C 然后 Y
//默认任务 gulp
gulp.task('default',['server','watch']);
9.合并js、压缩js、重命名压缩后的js
gulp.task('scripts',function(){
return gulp.src(['javascripts/jquery.js','javascripts/index.js'])
.pipe(concat('vendor.js')) //合并js文件
.pipe(gulp.dest('dist/js'))
.pipe(uglify()) //最小化一下合并后的文件
.pipe(rename('vendor.min.js')) //重命名压缩后的js文件
.pipe(gulp.dest('dist/js'));
});
10.设置一个本地服务器
gulp.task('server',function(){
connect.server({
root:'dist', //服务器的根目录
livereload: true //启用实时刷新的功能
});
});
作者: 海岛心hey
链接:http://www.imooc.com/article/8979
来源:慕课网
本文原创发布于慕课网 ,转载请注明出处,谢谢合作!
gulp的初阶使用方法(转)的更多相关文章
- Nodejs初阶之express
PS: 2014/09/24 更新<Express 4.X 启航指南>,欢迎阅读和评论:) 老规矩,开头部分都是些自娱自乐的随想,想到哪写到哪... 到今天俺已经在俺厂工作俩年零几天了 ...
- R语言实战(一)介绍、数据集与图形初阶
本文对应<R语言实战>前3章,因为里面大部分内容已经比较熟悉,所以在这里只是起一个索引的作用. 第1章 R语言介绍 获取帮助函数 help(), ? 查看函数帮助 exampl ...
- 平衡树初阶——AVL平衡二叉查找树+三大平衡树(Treap + Splay + SBT)模板【超详解】
平衡树初阶——AVL平衡二叉查找树 一.什么是二叉树 1. 什么是树. 计算机科学里面的树本质是一个树状图.树首先是一个有向无环图,由根节点指向子结点.但是不严格的说,我们也研究无向树.所谓无向树就是 ...
- Gulp安装流程、使用方法及cmd常用命令导览
Gulp安装流程.使用方法及CMD常用命令导览 来自前端小白的gulp及周边知识学习总结 一.名词介绍: Npm--node包管理工具 一开始我不理解,包管理工具是什么鬼.后来用到的gulp也好,gu ...
- 重温ASP.NET WebAPI(一)初阶
重温ASP.NET WebAPI(一)初阶 前言 本文为个人对WebApi的回顾无参考价值.主要简单介绍WEB api和webapi项目的基本结构,并创建简单地webaapi项目实现CRUD操作. ...
- $ gulp watch 运行出错解决方法
$ gulp watch 运行出错解决方法 $ gulp watch 如果你出现了如下报错信息: gulp-notify: [Laravel Elixir] Browserify Fail ...
- 《R语言实战》读书笔记--第三章 图形初阶(一)
3.1使用图形 可以使用pdf等函数将图形直接保存在文件中.在运用attach和detach函数的使用中经常出现错误,比如命名重复的问题,所以,应该尽量避免使用这两个函数. plot是一般的画图函数, ...
- 获取react中高阶组件方法
什么是高阶组件? 高阶组件就是接受一个组件作为参数并返回一个新组件的函数.这里需要注意高阶组件是一个函数,并不是组件,这一点一定要注意.同时这里强调一点高阶组件本身并不是 React API.它只是一 ...
- Sublime Text 3初阶
本文主要介绍一些Sublime Text3的初级阶段,主要从最初的安装,到插件,还有主题这三个方面介绍,还会提到一些关于使用ST3的一些小小经验... 一:安装 首先进入sublime的官方地址去下载 ...
随机推荐
- NET Excel转换为集合对象
1.仅适用于规则Excel:表头和数据一一对应 2.涉及到Excel转换为集合对象的部分代码,完整npoi帮助类点击查看 /// <summary> /// 默认把excel第一个shee ...
- 面试官常问的Nginx的几个问题
1.什么是Nginx? Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3 ...
- Java问题记录——OutOfMemoryError
Java问题记录——OutOfMemoryError 摘要:本文主要分析了OutOfMemoryError的产生原因. 没有分页导致占用大量内存 查看进程 使用 jps 命令查看当前运行的Java进程 ...
- 小鸟初学Shell编程(八)环境变量、预定义变量与位置变量
环境变量 环境变量:每个Shell打开都可以获得到的变量. 我们知道通过export的方式打开可以让子进程读取父进程的变量的值,那怎么样才能让每一个进程都能读取到变量的值呢? 在这呢,系统有一些默认的 ...
- 关于项目中js原型的使用
在一个项目中为了减少全局变量的使用及模块化的开发我们使用的构造函数加原型的开发模式 var App = function(){ //管理构造函数的属性 this.name = 'jack' } //页 ...
- 【Android】天气应用
模仿华为的"天气"应用写的一个小Demo.部分功能.动画效果没有实现,也没有过多考虑性能.Bug等其它方面的因素.写这个Demo的初衷是想熟悉下目前网上常用的一些框架. Demo采 ...
- linux epoll,poll,select
epoll函数用法,还有点poll和select 1,LT的epoll是select和poll函数的改进版. 特点是,读完缓冲区后,如果缓冲区还有内容的话,epoll_wait函数还会返回,直到把缓冲 ...
- Transformer模型---encoder
一.简介 论文链接:<Attention is all you need> 由google团队在2017年发表于NIPS,Transformer 是一种新的.基于 attention 机制 ...
- AtCoder abc 141 F - Xor Sum 3(线性基)
传送门 题意: 给出\(n\)个数\(a_i\),现在要将其分为两堆,使得这两堆数的异或和相加最大. 思路: 考虑线性基贪心求解. 但直接上线性基求出一组的答案是行不通的,原因之后会说. 注意到如果二 ...
- Python 函数小程序初解
目录 作业 ==程序代码自上往下运行,建议自上而下的完成下列任务== 作业 文件a.txt内容:每一行内容分别为商品名字,价钱,个数,求出本次购物花费的总钱数 sum = 0 f = open('a. ...