前端工程化 - gulp
gulp是什么
gulp就是一个前端的自动化构建工具,在开发过程中很多重复的任务可以使用gulp和gulp插件自动完成。相比于grunt,gulp非常好上手,核心API只有4个,而且还有丰富的插件库。
gulp快速入门
- 全局安装gulp
npm install -g gulp - 初始化项目,在项目目录下
npm init -y - 作为项目的开发依赖(devDependencies)安装
npm install --save-dev gulp - 在项目根目录下创建一个名为gulpfile.js的文件,并写入如下内容

- 在当前目录的命令行中输入gulp

gulp的核心API
gulp的核心API有四个,task、dest、task和watch,详细的用法可以到官网文档查看http://www.gulpjs.com.cn/docs/api/
这里将用一个简单的例子来演示gulp的四个核心API如何使用
- 安装gulp-less插件
npm install --save-dev gulp-less - 在项目下新建
./less/demo.less,并在其中写入

- 接着在gulpfile.js中写入如下内容

- 然后再当前项目的命令行中敲入
gulp并回车执行 - 接下来就可以看到当前项目目录下生成了
css/demo.css,less文件被成功解析成css文件并放到的指定目录中 - 再将demo.less中的内容,可以发现demo.css中的内容也发生了改变
gulp常用插件
- gulp-less less解析
- gulp-sass sass解析
- gulp-uglify js代码压缩
- gulp-clean-css css代码压缩
- gulp-htmlmin html代码压缩
- gulp-imagemin 图片压缩
- gulp-autoprefixer 自动添加css3浏览器前缀
- gulp-debug
- gulp-rename 文件重命名
- gulp-rev和gulp-rev-collector 添加版本号和替换文件中的图片,js文件和css文件等的引入路径,详细如何做,可以参考这篇博文https://segmentfault.com/a/1190000002932998
- gulp-load-plugins 自动加载gulp插件
- gulp-sourcemaps 生成sourcemap文件
在实际的项目开发工程中,我们可能会使用less,sass,TypeScript等,然后浏览器的调式工具(如chrome的开发者工具)无法直接调试这类的文件,通过sourcemap我们就可以很轻松的在浏览器进行调试。
例子:
在项目目录所在的命令行中敲入cnpm install --save-dev gulp gulp-sass gulp-sourcemaps,然后在gulpfile.js中写入

然后生成响应的.map文件
接着在chrome浏览器中打开开发者工具(F12),然后点击开发者工具右上角的关闭按钮旁的工具条进入setting

然后勾选上Sources下的Enable CSS source maps和Auto-reload generated CSS,刷新浏览器后就可以在开发者工具中显示scss了(注意右下)

- browser-sync 浏览器同步测试工具,具体的使用方法可以到这里查看http://www.browsersync.cn/
前端工程化 - gulp的更多相关文章
- [转]基于gulp和webpack的前端工程化
本文样例代码 :https://github.com/demohi/learning-gulp 本文主要简单介绍一下基于gulp和webpack的前端工程化. 技术栈 React.js reFlux ...
- gulp前端工程化教程
gulp npm install -g gulp-concat 文件打包 npm install -g gulp-rename 文件重命名 npm install -g gulp-imagemin 图 ...
- 基于webpack的前端工程化开发解决方案探索(一):动态生成HTML(转)
1.什么是工程化开发 软件工程的工程化开发概念由来已久,但对于前端开发来说,我们没有像VS或者eclipse这样量身打造的IDE,因为在大多数人眼中,前端代码无需编译,因此只要一个浏览器来运行调试就行 ...
- vue组件续和前端工程化
1.3 插槽 slot template: ` <button> <slot></slot> </button> ` <my-button> ...
- 10分钟学会前端工程化(webpack4.0)
一.概要 1.1.前端工程化 随着前端的不断发展与壮大,前端变得越来越复杂,组件化.模块化.工程化.自动化成了前端发展中不可或缺的一部分,具体到前端工程化,面临的问题是如何提高编码->测试-&g ...
- 前端工程化与webpack
(1) 前端工程化 近几年来,前端领域飞速发展,前端的工作早已不再是切几张图,写几个页面那么简单,项目比较大时,很可能会多人协同开发,模块化,组件化,CSS预编译等技术也被广泛的使用.前端自动化( ...
- web前端工程化/构建自动化
前端工程化 前端工程化的概念在近些年来逐渐成为主流构建大型web应用不可或缺的一部分,在此我通过以下这三方面总结一下自己的理解. 为什么需要前端工程化. 前端工程化的演化. 怎么实现前端工程化. 为什 ...
- 前端工程化开发之yeoman、bower、grunt
上两遍文章介绍了前端模块化开发(以seaJs为例)和前端自动化开发(以grunt为例)的流程,参见: http://www.cnblogs.com/luozhihao/p/4818782.html ( ...
- 前端工程化(二)---webpack配置
导航 前端工程化(一)---工程基础目录搭建 前端工程化(二)---webpack配置 前端工程化(三)---Vue的开发模式 前端工程化(四)---helloWord 继续上一遍的配置,本节主要记录 ...
随机推荐
- Windows Phone 7 检查手机网络
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Wi ...
- onethink插件控制器如何访问?
具体路由分析就不说啦!就是那样.这里我只是方便访问来做一个记录,方便复制粘贴访问: 例如:新增一个Baoming的插件: 那么如何,访问这个控制里面方法呢? 第一种情况:这个控制器使用的是Admin模 ...
- python 10分钟入门pandas
本文是对pandas官方网站上<10 Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介绍请参考:Cookbook .习惯 ...
- ABP 样板开发框架系列
--ABP 官网与源码 http://www.aspnetboilerplate.com/ https://github.com/aspnetboilerplate --pdf和docx 文档 htt ...
- 关于mysql5.7的一些变化
最近接了个项目,使用的数据库是5.7的,开始没太在意,但是在接手的过程中发送了些小插曲,特意记录下来. 首先,我想自己安装个noinstall版本的,结果发信下载下来的和之前版本的不一样,没有data ...
- Windows:子线程中创建窗口
一般来讲,UI的所有操作都必须在主线程,否则会出现未知错误.但有时候我们会需要一个功能比较单一的窗口,同时希望他在一个单独的线程运行.并不影响主线程的效率. 下面说明一下新建子线程创建的新窗口的方法, ...
- Python开发【Django】:ModelForm操作
ModelForm 内容回顾: Model - 数据库操作 - 验证 class A(MOdel): user = email = pwd = Form class LoginForm(Form): ...
- CF734F Anton and School 构造+数论
正解:构造 解题报告: 先放下传送门QwQ 这题首先要知道一个结论:(x&y)+(x|y)=x+y 还是能理解的趴? 所以我们把bi+ci就能得到∑a+n*a[i] 然后我们就能成功求出∑a ...
- PyCharm安装与配置,python的Hello World
1. 访问https://www.jetbrains.com/zh/pycharm/download/download-thanks.html, 下载pycharm 安 装包,点击安装. 2. 用记事 ...
- nodejs通过代理(proxy)发送http请求(request)
有可能有这样的需求,需要node作为web服务器通过另外一台http/https代理服务器发http或者https请求,废话不多说直接上代码大家都懂的: var http = require('htt ...