初步接触gulp
首先是安装nodejs,通过nodejs的npm全局安装和项目安装gulp,其次在项目里安装所需要的gulp插件,然后新建gulp的配置文件gulpfile.js并写好配置信息(定义gulp任务),最后通过命令提示符运行gulp任务
1.安装node.js:https://nodejs.org/en/,再安装淘宝镜像,cnpm:npm install -g cnpm --registry=https://registry.npm.taobao.org
2.安装:命令提示符执行cnpm install gulp -g
3.本地安装:cnpm install gulp-less --save-dev cnpm install gulp --save-dev
我们全局安装了gulp,项目也安装了gulp,全局安装gulp是为了执行gulp任务,本地安装gulp则是为了调用gulp插件的功能(反正不安装会报错)
4.新建package.json文件,可以手工建立,也可以在控制台输入npm init 然后根据提示填完信息,会自动在该目录下生成一个package.json文件
6.继续在控制台安装所需的插件,如:npm install gulp-imagemin --save -dev //图片压缩插件
7.在项目根目录中新建gulpfile.js文件,然后往里面写入执行代码
var gulp = require('gulp'); //获取gulp
var browsersync = require('browser-sync').create();//获取browsersynvar
htmlmin = require('gulp-htmlmin'); //require()的作用感觉和python中的import相同,以后再研究
gulp.task('html', function() { //gulp.task定义任务,这里的html是任务名称,以后调用的时候可以用上,function()是任务要执行的代码,中间还有一个参数,是当前定义的任务需要依赖的其他任务,为一个数组。当前定义的任务会在所有依赖的任务执行完毕后才开始执行。如果没有依赖,则可省略这个参数
gulp.src('*.html') //gulp.src 获取流,一个虚拟文件对象流
.pipe(htmlmin({
collapseWhitespace: true, //压缩html
collapseBooleanAttributes: true, //省略布尔属性的值
removeComments: true, //清除html注释
removeEmptyAttributes: true, //删除所有空格作为属性值
removeScriptTypeAttributes: true, //删除type=text/javascript
removeStyleLinkTypeAttributes: true, //删除type=text/css
minifyJS:true, //压缩页面js
minifyCSS:true //压缩页面css
}))
.pipe(gulp.dest('dist'))
.pipe(browsersync.stream());
});
gulp.task('serve', ['clean'], function() {gulp.start('scripts','style','image','html');
browsersync.init({
port: 2016,
server: {
baseDir: ['dist']
}
gulp.watch('*.html', ['html']); //gulp.watch用来监视文件的变化,当文件发生变化后,我们可以利用它来执行相应的任务,第一个参数是监视的对象,最后一个是任务名称,是个数组
8.做完上面的步骤之后,可以运行了,学到了一招快速切换到项目目录的方法,不用cd。。。只要在目录空白处同时点击shift和鼠标右键,然后选择“在此处打开命令窗口”,就达到目的了,然后输入gulp,正常的话,可以在谷歌浏览器打开

9.然后尝试修改html文件,发现控制台有监控到文件变化,但是浏览器确没有自动刷新,好纳闷地又看了一遍代码,代码是copy下来的,半懂不懂

10.略失望,最后百度了下,找到了原因,加上完整的结构之后可以了,收工,哈哈,接下来要继续学习才行,真是太爱自动刷新这个功能了。

初步接触gulp的更多相关文章
- php大力力 [006节]初步接触认识phpMyAdmin
phpMyAdmin 2015-08-22 php大力力006. 初步接触认识phpMyAdmin 以下是phpAdmin网络截图: 这是通过MAMP一键安装的. php中MyAdmin的使用-猿代码 ...
- avalon - 初步接触
avalon - 初步接触 avalon的介绍http://rubylouvre.github.io/mvvm/ 按照作者的介绍,在HTML中添加绑定,在JS中用avalon.define定义View ...
- 初步接触CERNVM
初步接触的来源是对ROOT数据分析工具的搜索,看到一个叫做Life as a Physicist的国外博客.知道了这个包含容器分发的软件,跟重要的是,这个欧洲核子中心开发的平台,对于我等科研人员是一大 ...
- Spring boot -环境搭建 ,初步接触(1)
1. Eclipse 创建 maven project 项目目录如下: 2. pom.xml 配置文件 <project xmlns="http://maven.apache.or ...
- 为什么要使用puppet 及初步接触
为什么要使用puppet 及初步接触 1.简介 云计算环境下,密度高,机器数量多,还要求弹性和伸缩性,这对于运维提出更高的要求.系统管理员需要经常安装操作系统,对系统参数进行配置和优化,对人员进行 ...
- C#初步接触
如同非常多刚開始学习的人一样,刚接触C#的时候,也是一头雾水,学习了好长时间,都搞不清楚一些基本名称是什么.什么是C#?什么是.net?什么是visual studio?它们之间有什么关系?以下我们就 ...
- 初步接触html心得
接触HTML大概有七天,做一下小总结,过过记忆. html大致可分为三部分:Dtd头.Head.Body三大部分. Dtd头:是用于浏览器编辑的,也就是俗话说的给电脑看的的东西. Head:内细分下大 ...
- 实验记录一 初步接触cortex-M3
应该说老早就在接触cortex-M3了.曾经没想到会接触嵌入式,结果由于导师的缘故.在选择项目管理时,就呵呵了.不废话.搭配环境非常easy,纯粹傻瓜式.可由于自己的马虎,却让自己一直困惑. 记得在前 ...
- java_web学习(四) 二维表的制作(初步接触MVC)
我们需要做一个jsp页面,动态显示信息表的内容. 一.需求分析 1. 做一个实体类:StudentInfo (包含4个字段) 2. 如图模拟生成3条数据,本质上就是new StudentInfo ...
随机推荐
- python安装setup.py问题
一:python下setuptools安装( No module named setuptools 解决方案) 1. 下载:在它的官网可以下载到安装包:https://pypi.python.org/ ...
- android 开发设计模式---Builder模式
我们通过一个例子来引出Builder模式.假设有一个Person类,我们通过该Person类来构建一大批人,这个Person类里有很多属性,最常见的比如name,age,weight,height等等 ...
- 佳佳的Fibonacci
#include<cstdio> #include<cstring> #include<iostream> #include<cmath> #inclu ...
- Git 教程(一):简介和安装
为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的 ...
- Vfox数据库导出EXCEL,含有备注型子段
1. 选择菜单“数据”-> “自其他来源”->“来自 Microsoft Query ”. 2. 在出来的“选择数据源” 里面双击第一个选项“<新数据源>”会出来一个“创建新数 ...
- Numpy 和 Matplotlib库的学习笔记
Numpy介绍 一个用python实现的科学计算,包括:1.一个强大的N维数组对象Array:2.比较成熟的(广播)函数库:3.用于整合C/C++和Fortran代码的工具包:4.实用的线性代数.傅里 ...
- Java SE中的Synchronized
1 引言 在多线程并发的编程中Synchronized一直是元老级的角色,很多人会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化以后,有些情况下它并不那么重了. ...
- 3.键盘输入10个数,放到数组中,(1)去除该数组中大于10的数 (2)将该数组中的数字写入到本地文件number.txt中
package cn.it.text; import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; ...
- Linux环境部署SVN服务器
1. 安装SVN服务器: 检查是否已安装 # rpm -qa subversion 安装SVN服务器 # yum install httpd httpd-devel subversion mod_da ...
- jdbc笔记(一) 使用Statement对单表的CRUD操作
jdbc连接mysql并执行简单的CRUD的步骤: 1.注册驱动(需要抛出/捕获异常) Class.forName("com.mysql.jdbc.Driver"); 2.建立连接 ...