gulp是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务。

外网:http://gulpjs.com/

中文官网:http://www.gulpjs.com.cn/

易于使用

通过代码优于配置的策略,Gulp 让简单的任务简单,复杂的任务可管理。

构建快速

利用 Node.js 流的威力,你可以快速构建项目并减少频繁的 IO 操作。

插件高质

Gulp 严格的插件指南确保插件如你期望的那样简洁高质得工作。

易于学习

通过最少的 API,掌握 Gulp 毫不费力,构建工作尽在掌握:如同一系列流管道。

gulp其功能就是将代码放在管道顶部,自由垂落,经过管道的每个片段处理过程,从而实现了对代码的整体处理,最后落入目标目录,一句话“流的感觉”

gulp安装:

gulp基于node,要先安装node,然后命令行输入 npm install -g gulp --save-dev (-g:全局安装;--save-dev将gulp加入package.json开发依赖项)

安装gulp常用插件:

npm install -g gulp-sass gulp-autoprefixer gulp-minify-css gulp-jshint gulp-concat gulp-uglify gulp-imagemin gulp-notify gulp-rename gulp-livereload gulp-cache --save-dev

项目:

1、创建目录scale,在其下面创建learn-gulp项目目录,目录里存放css、js文件

2、安装局部gulp和局部gulp插件,安装方法与上面相同(不安装局部无法操作项目)

3、创建gulpfile.js文件

目录结构,如图:

编写gulpfile.js

多少年的老规矩了上代码:

 var gulp = require("gulp"),            //加载gulp模块
concat = require("gulp-concat"),
minify = require("gulp-minify-css"), //加载插件模块
uglify = require("gulp-uglify"),
livereload = require("gulp-livereload"),
rename = require("gulp-rename"); // 合并,压缩css文件
gulp.task('css', function() { //任务名(必须是字符串)
gulp.src('learn-gulp/*.css')
.pipe(concat('all.css'))
.pipe(minify())
.pipe(rename('all.min.css')) //{suffix:'.md'}(加后缀的)
.pipe(gulp.dest('dist'));
});
//合并,压缩js文件
gulp.task('script', function() {
gulp.src('learn-gulp/*.js')
.pipe(concat('all.js'))
.pipe(uglify())
.pipe(rename('all.min.js'))
.pipe(gulp.dest('dist'));
}); // 默认任务
gulp.task('default', ['css','script']); //默认执行的任务,可以为多个,写成数组即可 // 监听文件变化
gulp.watch(['learn-gulp/*.css', 'learn-gulp/*.js'], ['css','script']); //找到src源,监听其是否变化,若变化根据src源找到对应task执行

坑一:必须局部安装gulp、gulp插件(node.js command prompt 运行,即node的命令行gulp相关命令)

坑二:任务名必须是string,且不能用gulp的关键字

坑三:不同的任务必须分开写,不能写在一个任务里(不然执行不了)

Scales小谈gulp的更多相关文章

  1. scales小谈grunt

    Grunt是基于Node.js的项目构建工具.它可以自动运行你所设定的任务.Grunt拥有数量庞大的插件,几乎任何你所要做的事情都可以用Grunt实现. 一头野猪映入眼帘,意:咕噜声 中文网站:htt ...

  2. DevStore开发人员服务有奖征文:小谈新浪微博开放平台

    DevStore开发人员服务有奖征文:小谈新浪微博开放平台 笔者接入新浪微博开发平台也有一段时间了,对整个平台的接入也算比較熟悉,新浪提供了统一的API接口,能够让开发人员更方便的使用API来实现自己 ...

  3. 小谈Java里的线程

    今天,我们来谈一谈Java里的线程. 一.进程与线程的基本概念 大家可能没听过线程这个概念,但是相信,用计算机的朋友都听过进程这个概念.打开电脑的任务管理器,我们就可以看到许多进程.它们主要分为三类, ...

  4. 微信小程序 - gulp插件压缩(代码、图片等)

    最后更新时间: 2018.7.18 :更新了所有package.json插件版本以及修复极个别问题. 2018.8.12 : 增加提示,所有标签必须闭合(不然打包会报错) 2018.10.13:需要用 ...

  5. 微信小程序——gulp处理文件

    懒癌直接贴代码,想写在写因为最近搞了一下小程序,直接使用微信的开发者工具搞感觉有点不习惯,并且看了几篇给小程序瘦身的博客,决定给自己的项目做一套配置文件,使用gulp来支持sass scss文件编译以 ...

  6. 小谈Scrum敏捷开发流程

    一晃眼,有两年没有写博客了,回顾前两年,各种奔波,各种忙碌,也有不少的收获.从今天开始,我要把这些收获都分享在这里. 其实这两年,对我影响最大的是开发流程.总所周知,一个好的开发流程,对于项目的进行, ...

  7. iOS 小谈开发者中的个人、组织(公司、企业)账号

    苹果对开发者主要分为3类:个人.组织(公司.企业).教育机构.即: 1.个人(Individual) 2.组织(Organizations) 组织类又分为2个小类: (1)公司(Company) (2 ...

  8. Http与Socket小谈

    http与socket是网络编程中最为重要的概念,不管是客户端还是服务端,都是最为重要的部分,以下简述两者的关系和区别(个人见解). Http 定义 基于应用层的超文本传输协议.通常承载于TCP/IP ...

  9. 小谈 - web模仿手机打电话与正则表达式

    昨天遇到了一个很棘手的问题,就是手机端调用web端的页面,如果用编辑器插入的内容页面中有电话的的数据就要变一下格式,让手机端可以实现拨号的功能. 研究了半天就是没一点头绪,但是偶尔看到数据中每一个电话 ...

随机推荐

  1. OC 类簇与复合

    OC 类簇与复合 类簇: 类簇是Foundation框架中广泛使用的设计模式.类簇将一些私有的.具体的子类组合在一个公共的.抽象的超类下面,以这种方法来组织类可以简化一个面向对象框架的公开架构,而又不 ...

  2. UIWebView加载本地html文件

    UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(, , KScreenWidth, KScreenHeight-)]; ...

  3. mysql_建立索引的优缺点 #转自Starzm#

    建立索引的优缺点: 为什么要创建索引呢? 这是因为,创建索引可以大大提高系统的性能.         第一.通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性.         第二.可以大大加 ...

  4. oracle行转列与列转行

    一.行转列 在有些应用场景中,如学生成绩.学生所有科目的成绩都保存到一张表里面,当我们需要以列表的形式显示出学生所对应的每一科目的成绩的时候,需要使用到行转列. 示例 -- 学生成绩表 create ...

  5. Python基础面向对象成员

    面向对象中成员 字段: 静态字段保存在类中:静态字段在代码加载时被创建 普通字段保存在对象中: 规则: 普通字段只能用对象访问: 静态字段用类去访问(万不得已的时候可以使用对象访问) #!/usr/b ...

  6. find

    语法:find [路径] [参数] [action] -name filename,查找名为filename的文件 -iname filename,查找名为filename的文件,但是不区分大小写 - ...

  7. Linux Kernel代码艺术——数组初始化

    前几天看内核中系统调用代码,在系统调用向量表初始化中,有下面这段代码写的让我有点摸不着头脑: const sys_call_ptr_t sys_call_table[__NR_syscall_max+ ...

  8. BZOJ 3343: 教主的魔法 [分块]【学习笔记】

    3343: 教主的魔法 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1172  Solved: 526[Submit][Status][Discus ...

  9. Redis的安装

    1. 中文官网:http://www.redis.cn/download.html 英文官网:http://www.redis.io/download 里面的内容的一样的,就是一个是中文写的,一个是英 ...

  10. 观察者模式(Observer和Observable实现)

    package com.wzy.java8.thread; import java.util.Observable; import java.util.Observer; public class D ...