自动化构建工具gulp简单介绍及使用
一、简介及安装:
gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器;她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;使用她,我们不仅可以很愉快的编写代码,而且大大提高我们的工作效率
gulp的优点:基于流的操作、任务化。
常用api:src 、dest、watch、task、pipe
由于gulp是基于node的所以使用的时候需要通过npm或者cnpm安装全局安装(cnpm i -g gulp)
常用的gulp需要安装的包括gulp-clean gulp-connect gulp-concat gulp-cssmin gulp-imagemin gulp-less gulp-load-plugins gulp-uglify open
安装以上的gulp插件可以使用cnpm i --save-dev xxx(--save-dev可以使安装的插件的依赖保存在package.json中),同时有一种快捷的方式可以一次性安装多个,每个组件之间使用空格隔开cnpm i --save-dev gulp-concat gulp-connect等
安装完以上插件,package.json的文件会添加下面的依赖。

二、使用
首先需要创建一个gulpfile.js文件,使用require引入gulp模块,同时引入gulp-load-plugins模块(引入该模块的目的是为了当以后想要引入gulp-connect等插件的时候,可以通过$直接引入,这样比较方便)
下面结合具体的实例对以上进行说明:(具体的已经给出注释说明)
 var gulp = require('gulp');
 //引入gulp-load-plugins模块 注意要将其实例化
 var $ = require('gulp-load-plugins')();
 var open = require('open');
 var app = {
   srcPath: 'src/',
   devPath: 'build/',
   prdPath: 'dist/'
 };
 gulp.task('lib', function() {
   gulp.src('bower_components/**/*.js')//读取文件目录
   .pipe(gulp.dest(app.devPath + 'vendor'))//写入目录
   .pipe(gulp.dest(app.prdPath + 'vendor'))
   .pipe($.connect.reload());//重新刷新浏览器
 });
 gulp.task('html', function() {
   gulp.src(app.srcPath + '**/*.html')
   .pipe(gulp.dest(app.devPath))
   .pipe(gulp.dest(app.prdPath))
   .pipe($.connect.reload());
 })
 gulp.task('json', function() {
   gulp.src(app.srcPath + 'data/**/*.json')
   .pipe(gulp.dest(app.devPath + 'data'))
   .pipe(gulp.dest(app.prdPath + 'data'))
   .pipe($.connect.reload());
 });
 gulp.task('less', function() {
   gulp.src(app.srcPath + 'style/index.less')
   .pipe($.plumber())
   .pipe($.less())//编译less文件
   .pipe(gulp.dest(app.devPath + 'css'))
   .pipe($.cssmin())//压缩css文件
   .pipe(gulp.dest(app.prdPath + 'css'))
   .pipe($.connect.reload());
 });
 gulp.task('js', function() {
   gulp.src(app.srcPath + 'script/**/*.js')
   .pipe($.plumber())
   .pipe($.concat('index.js'))//将js文件合并到index.js文件中
   .pipe(gulp.dest(app.devPath + 'js'))
   .pipe($.uglify())//压缩js文件
   .pipe(gulp.dest(app.prdPath + 'js'))
   .pipe($.connect.reload());
 });
 gulp.task('image', function() {
   gulp.src(app.srcPath + 'image/**/*')
   //捕获处理任务中的错误
   .pipe($.plumber())
   .pipe(gulp.dest(app.devPath + 'image'))
   .pipe($.imagemin())//压缩图片文件
   .pipe(gulp.dest(app.prdPath + 'image'))
   .pipe($.connect.reload());
 });
 //总的任务
 gulp.task('build', ['image', 'js', 'less', 'lib', 'html', 'json']);
 //清除目录中的内容
 gulp.task('clean', function() {
   gulp.src([app.devPath, app.prdPath])
   .pipe($.clean());
 });
 gulp.task('serve', ['build'], function() {
   $.connect.server({
     root: [app.devPath],//读取路径
     livereload: true,//自动刷新
     port: 3000
   });
   //打开默认地址
   open('http://localhost:3000');
   //监控文件 当变化时执行相对应的任务
   gulp.watch('bower_components/**/*', ['lib']);
   gulp.watch(app.srcPath + '**/*.html', ['html']);
   gulp.watch(app.srcPath + 'data/**/*.json', ['json']);
   gulp.watch(app.srcPath + 'style/**/*.less', ['less']);
   gulp.watch(app.srcPath + 'script/**/*.js', ['js']);
   gulp.watch(app.srcPath + 'image/**/*', ['image']);
 });
 gulp.task('default', ['serve']);
由于刚开通博客,不怎么会排版,写得知识也只是个人理解,如果问题请指出。希望大神们多多指教。
自动化构建工具gulp简单介绍及使用的更多相关文章
- 基于流的自动化构建工具------gulp (简单配置)
		
项目上线也有一阵子,回头过来看了看从最初的项目配置到开发的过程,总有些感慨,疲软期,正好花点时间,看看最初的配置情况 随着前端的发展,前端工程化慢慢成为业内的主流方式,项目开发的各种构建工具,也出现了 ...
 - 前端自动化构建工具Gulp简单入门
		
昨天听同事分享了Gulp的一些简单使用,决定自己也试一试. 一.安装 gulp是基于nodejs的,所以要先下载安装node(直接搜node,在官网下载就好了) 1.全局安装gulp npm inst ...
 - 前端自动化构建工具gulp的使用总结
		
前端自动化构建工具gulp的使用总结 博主最近偶的空闲,在此对gulp的使用做一个总结,让小伙伴知道如何合理的使用gulp以及gulp的使用技巧. 谈到gulp,有人可能就会想到另外一个构建工具gru ...
 - 前端自动化构建工具——gulp
		
gulp是基于流的前端自动化构建工具. 一.环境配置 gulp是基于nodejs的,所以没有 nodejs 环境的要先去安装好 然后给系统配上gulp环境 npm install -g gulp 再到 ...
 - 前端自动化构建工具 Gulp 使用
		
一个月没写博客了,今天有时间,就写个gulp的入门使用吧.. 简介:gulp是一个前端自动化构建工具,可以实现代码的检查.压缩.合并……等等,gulp是基于Node.js的自动任务运行器 一.安装No ...
 - 前端自动化构建工具--Gulp&&Webpack
		
前端构建工具的作用可以认为是对源项目文件或资源进行文件级处理,将文件或资源处理成需要的最佳输出结构和形式. 在处理过程中,我们可以对文件进行模块化引入.依赖分析.资源合并.压缩优化.文件嵌入.路径替换 ...
 - 前端自动化构建工具 gulp 学习笔记 一、
		
一.我对gulp的初期理解 是一种前端辅助开发工具 可以帮你把js,css,img等文件 合并.压缩,图片好像是合并为精灵图,合并为精灵图之后,还会生成一个css样式表. 官方解说是:基于流的自动化构 ...
 - Gulp自动化构建工具的简单使用
		
相关网站 gulp官方网址:http://gulpjs.com gulp中文网站:http://www.gulpjs.com.cn/ gulp插件地址:http://gulpjs.com/plugin ...
 - 前端自动化构建工具——gulp环境搭建教程
		
gulp是前端工程化的工具,它可以对html,css,js等代码和图片进行压缩,也可以对sass和less等预处理语言进行编译,代码部署.gulp学起来简单,用起来方便,大大提高我们工作效率. 这里可 ...
 
随机推荐
- AR入门系列-02-Vuforia在Unity3d编辑器的使用
			
到unity3d的官网下载 地址:https://store.unity.com/?_ga=1.1496562.231401799.1487590551 个人版功能齐全免费,个人开发者基本够用,本案例 ...
 - loadrunner入门篇-Vuser发生器
			
Vuser 发生器(Visual User Generator,VuGen),主要通过捕获客户端向服务器发送的HTTP请求,将这些请求录制成脚本,在回放时将捕获的HTTP请求再次发送,以达到模拟客户行 ...
 - 谈JavaScript的继承
			
最近在忙前端的工作,因为之前做.net和php的开发比较多,前端开发喜欢把库拿来就用,几次事实证明,不懂原理,连改代码也改不好,所以还是下定决心研究下JavaScript的几个技术难点. 0x1.Ja ...
 - js三大家族offset,scroll,cliennt的区别
			
offset偏移(返回的是number类型) offsetLeft:返回盒子距离左边的距离 offsetTop:返回盒子距离顶部的距离 offsetHeight:返回盒子的高度,包括border,pa ...
 - MDX 用Ancestors得到Hierarchy中指定Level的值(附带SCOPE用法之一)
			
需求:用户想要用Excel,对比每月预算和整年预算,需要在两个用户定义的Hierarchy都可以浏览.财年季月日(FYQMD)和财年月日(FYMD). 自定义hierarchy 属性关系(Attrib ...
 - 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
			
1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: ...
 - Raft算法,从学习到忘记
			
Raft算法,从学习到忘记 --Raft算法阅读笔记. --Github 概述 说到分布式一致性算法,可能大多数人的第一反应是paxos算法.但是paxos算法一直以来都被认为是难以理解,难以实现.S ...
 - Archlinux 的U盘自动装载(一)udisks
			
为什么要用 udisks + udevil 方式自动装载 U 盘? Gnome 和 KDE 下的很多文件管理器都有自己的U盘装载方案.但我的应用环境为: Archlinux,xorg,Openbox, ...
 - 用 Visual Studio Code 调试 Node.js
			
环境: Visual Studio Code Node.js 1. 关闭运行中的程序 2.打开入口文件,我这里的入口文件为 app.js 3.点击左侧菜单栏的 debug 按钮 4.点击运行按钮 5 ...
 - Untiy文档总结(1)-Profiling
			
这段时间上班了,不是什么大公司,虽说很闲但是不能断了学习,就开始看优化有关的文档,虽说自己英语渣的要死,但也要读下去,逼着自己翻译完了,里面有抄Unity圣典的,但自己是看Unity5.5文档写的,只 ...