前端们,gulp该用起来了,简单的demo入门

gulp、grunt前端自动化工具,只有用过才知道多么重要。

作者:一文不提来源:博客园|2015-05-28 10:35

gulp、grunt前端自动化工具,只有用过才知道多么重要。

它们问世这么久了?你真的用过吗?

写个简单的less、watch任务的demo分享————

1.准备:

安装全局node、npm,这个教程很多不作详细介绍;

新建getstart文件夹,文件夹中创建package.json,记得加上{},保存

2.命令提示符下,到getstart文件夹里,依次安装node模块:

npm install --save-dev gulp
npm install --save-dev gulp-less
npm install --save-dev gulp-watch
npm install --save-dev require-dir

3. 根目录新建gulpfile.js 、 gulp文件夹;

 gulp文件夹里再新建一个tasks文件夹和config.js文件;

  tasks文件夹里创建default.js, less.js, watch.js。

tasks文件里存放对应的任务、config.js配置任务的相关配置

(1)gulpfile.js (gulp入口文件),最基本的写法是把所有任务配置在此文件里,我们这里做一层分离,用require-dir引入gulp/tasks里的任务

var requireDir = require('require-dir');  requireDir('./gulp/tasks', { recurse: true});

(2)config配置:

  1. /* gulp命令会由gulpfile.js运行,所以src和build文件夹路径如下(根目录下) */
  2. var src = './src'; var dest = './build';
  3. module.exports = {     less: {         all: src + "/less/**/*.less",  //所有less

(3)编写default,默认任务,这里默认任务添加了less和watch任务:

  1. var gulp = require('gulp');  gulp.task('default', ['less','watch']);

(4)编写less任务,这里引入了config.js配置文件,pipe()方法会依次执行,如下首先获取less源文件、然后编译、最后输出。

  1. var gulp = require('gulp'); var less = require('gulp-less'); var config = require('../config').less;  gulp.task('less', function(){     return gulp.src(config.src)         //less源文件         .pipe(less(config.settings))    //执行编译         .pipe(gulp.dest(config.dest))   //输出目录 });

(5)编写watch任务,

  1. var gulp = require('gulp'); var watch = require('gulp-watch'); var config = require('../config');  gulp.task('watch', function(){     watch(config.less.all, function(){  //监听所有less         gulp.start('less');             //出现修改、立马执行less任务     }) })

4.根目录创建src->less文件夹,新建需要的less文件 如下:

根据config配置,会编译less文件夹里的less,如下的main.less:

@import "app/a.less"; @import "app/b.less";

根据config配置,会编译监听less里的所有文件,一旦有变化,便会执行编译。

最终输出到build->css里

试试修改a.less,便会自动编译了。

OK,这个demo就做完了,很简单吧!

这是个非常简单的任务,当然我们可以用gulp做很多事情,比如压缩图片、压缩代码、合并、iconFont,配置不同的生产环境需要的任务:deploy、staging、localhost等。

真正用好了,能提升非常大的开发和维护效率。

这个demo只是简单的入门,真正学习gulp,还是要到官网上去学习。

【编辑推荐】

【责任编辑:wangxueyan TEL:(010)68476606】

gulp 用法 小结的更多相关文章

  1. 转载:Hadoop排序工具用法小结

    本文转载自Silhouette的文章,原文地址:http://www.dreamingfish123.info/?p=1102 Hadoop排序工具用法小结 发表于 2014 年 8 月 25 日 由 ...

  2. gulp使用小结(二)

    接上篇文章接Gulp使用小结(一) 内容如下: 首先,偶在gulp-demos上已经提交了个较通用的栗子...俺琢磨半天,原准备分阶段搞些 Gulp 套路,但是写完介个栗子之后,觉得已经能覆盖绝大多数 ...

  3. [No000010]Ruby 中一些百分号(%)的用法小结

    #Ruby 中一些百分号(%)的用法小结 #这篇文章主要介绍了Ruby 中一些百分号(%)的用法小结,需要的朋友可以参考下 what_frank_said = "Hello!"#% ...

  4. C++ typedef用法小结 (※不能不看※)

    C++ typedef用法小结 (※不能不看※) 第一.四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如:char* pa, pb; // 这多数不 ...

  5. 函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结 (转)

    函数fgets和fputs.fread和fwrite.fscanf和fprintf用法小结 字符串读写函数fgets和fputs 一.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符 ...

  6. 1:CSS中一些@规则的用法小结 2: @media用法详解

    第一篇文章:@用法小结 第二篇文章:@media用法 第一篇文章:@用法小结 这篇文章主要介绍了CSS中一些@规则的用法小结,是CSS入门学习中的基础知识,需要的朋友可以参考下     at-rule ...

  7. 英语语法最终珍藏版笔记- 21it 用法小结

    it 用法小结 it 在英语中的意思较多,用法较广,现总结如下. 一.it作句子的真正主语 1.it 指前面已经提到过的人或事物,有时指心目中的或成为问题的人或事物,作真正主语. 例如: What’s ...

  8. [转]ssh常用用法小结

    ssh常用用法小结 1.连接到远程主机: 命令格式 : ssh name@remoteserver 或者 ssh remoteserver -l name 说明:以上两种方式都可以远程登录到远程主机, ...

  9. 结构体定义 typedef struct 用法详解和用法小结

    typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别在于:若struct node {}这样来定义结构体的话.在申请node 的变量时,需要这样写,stru ...

随机推荐

  1. C语言写CGI程序

    一.CGI概述 CGI(公用网关接口)规定了Web服务器调用其他可执行程序(CGI程序)的接口协议标准.Web服务器通过调用CGI程序实现和Web浏览器的交互, 也就是CGI程序接受Web浏览器发送给 ...

  2. asterisk channel driver dev ref

    入口函数load_module    load_config    ast_channel_register console_tech    ast_cli_register_multiple     ...

  3. 非root用户执行程序---sudo的使用

    场景 在应用部署过程中,会遇到这样的问题:前期需要root用户执行配置.初始化工作,而具体的业务应用需要使用非root用户启动. 如何解决呢? 方法 可以使用sudo,实现授权. sudo命令授权,既 ...

  4. 【selenium】XPATH语法(一)

    XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. 我们将在下面的例子中使用这个 XML 文档. <?xml v ...

  5. 【shell】grep命令

    1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局 ...

  6. select选中事件

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. DataTable 分批处理,每批处理4行

    ZZ -- /// <summary> /// 分批处理. /// </summary> public void PartialProc() { ;//每个datatable行 ...

  8. php 非常简单的导入sql文件

    在网上找了很多,都是写了一个类 做了各种处理.还真是累哦 当然之前也做了各种尝试 source 客户端命令 mysql_query()是不支持的 load_file  在where 之后执行可以,但是 ...

  9. 【Spring-AOP-学习笔记-6】@AfterThrowing增强处理简单示例

    项目结构 业务代码 @Component("hello") public class HelloImpl implements Hello {     // 定义一个简单方法,模拟 ...

  10. python selenium-5根据unittest组织测试用例

    driver:浏览器driver存放地址 testcase:测试用例目录 report:测试结果保存目录 runtest.py:执行文件 test_search1.py搜索selenium,test_ ...