Grunt是啥?

很火的前端自动化小工具,基于任务的命令行构建工具。

Grunt能帮我们干啥?

假设有这样一个场景:

编码完成后,你需要做以下工作

  1. HTML去掉注析、换行符 - HtmlMin
  2. CSS文件压缩合并 – CssMinify
  3. JS代码风格检查 – JsHint
  4. JS代码压缩 – Uglyfy
  5. image压缩 - imagemin

重复而枯燥的工作太多了,我们需要一个自动化的工作流程,让我们更专注于coding,而不是coding外的繁琐工作。于是Grunt应运而生。可以想像,如果在node环境下,一行命令就搞定了上面的所有工作,是不是节省了很多时间。

Grunt安装配置

安装 grunt-cli

1. 自备node环境(>0.8.0), npm包管理

2. 卸载旧版本grunt(<0.4.0) (没装过请忽略)

npm uninstall grunt -g

3. 安装grunt-cli

npm install grunt-cli -g

安装 grunt-init(可选)

npm install grunt-init -g

可选安装,grunt-init是个脚手架工具,它可以帮你完成项目的自动化创建,包括项目的目录结构,每个目录里的文件等。具体情况要看你运行grunt-init指定的模板,以及创建过程中你对问题的回答。由于篇幅且配置 grunt-init 模板较为复杂,本课暂不展开讨论,下一课将详细讲解。

配置 grunt

从官网下载package.json和Gruntfile.js 文件放到项目根目录,并对文件进行修改配置.

  • package.json //项目自动化所依赖的相关插件。
  • Gruntfile.js //项目自动化工作流配置文件。

package.json 文件的基本内容:

Gruntfile.js 文件的基本内容:


在实际项目中的应用

1. 先配置好package.json、Gruntfile.js这两个文件,具体如何配置,请看前面的课程讲解。

2. 执行命令,自动下载依赖的Grunt插件
命令行执行:
npm install
3. 启动任务live的执行,这个任务,你可以用来监控你的源文件是否有变化。
命令行执行:
grunt live
4. 启动任务build的执行,这个任务,你可以用来合并所有的js源文件
命令行执行:
grunt build

Grunt使用总结

1. 配置简单。配置文件Gruntfile.js是JS格式的,比较贴近前端的知识点。相对Ant之类的是基于JAVA的,而且又是xml配置,相对来说学习成本低。
2. Grunt能为我们做的远不只这么多,很多Grunt插件待我们去挖掘使用。
比如:haml less coffeeScript dataURI html2json
3. 每个人的具体需求不一样,可以按自己的习惯合理配置,组合成最适合自己项目的自动化工作流。
4. Grunt团队很勤劳,社区活跃,有兴趣可以持续关注。


加油

grunt入门讲解6:grunt使用步骤和总结的更多相关文章

  1. grunt入门讲解2:如何使用 Gruntfile 配置任务

    Grunt的task配置都是在 Gruntfile 中的grunt.initConfig方法中指定的.此配置主要包括以任务名称命名的属性,和其他任意数据.一旦这些代表任意数据的属性与任务所需要的属性相 ...

  2. grunt入门讲解1:grunt的基本概念和使用

    Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.老版本的 Node. ...

  3. grunt入门讲解7:项目脚手架grunt-init

    grunt-init是一个用于自动创建项目脚手架的工具.它会基于当前工作环境和你给出的一些配置选项构建一个完整的目录结构.至于其所生成的具体文件和内容,依赖于你所选择的模版和构建过程中你对具体信息所给 ...

  4. grunt入门讲解4:如何创建task(任务)

    每当运行Grunt时, 你可以为其指定一个或多个任务, 这些任务用于告诉Grunt你想要它做什么事情. 如果你没有指定一个任务,并且你已经定义一个名为 "default" 的任务, ...

  5. grunt入门讲解5:创建插件,安装Grunt以及常见问题

    创建插件 创建插件主要有以下几个步骤: (1)通过 npm install -g grunt-init 命令安装 grunt-init .(2)通过 git clone git://github.co ...

  6. grunt入门讲解3:实例讲解使用 Gruntfile 配置任务

    这个Gruntfile 实例使用到了5个 Grunt 插件: grunt-contrib-uglify      grunt-contrib-qunitgrunt-contrib-concatgrun ...

  7. Grunt 入门

    转自:http://user.qzone.qq.com/174629171/blog/1404433906 Grunt被定义为:the javascript task runner. 什么算是Java ...

  8. Grunt入门学习之(1) -- 环境安装

    Grunt入门学习(1) - 环境安装 这周根据项目需要,在项目的基础上分模块开发了一个小的项目板块,但是在规范组织每个模块的代码和其依赖性时比较麻烦,需要一个项目板块的构建工具.各个模块都包括其对应 ...

  9. Grunt入门

    Grunt 新手一日入门 2014.06.20 前端相关 TOC 1. 用途和使用场景 2. 开发一个任务自动处理器 3. 开始学习 Grunt 3.1. 安装 Grunt 3.2. 生成 packa ...

随机推荐

  1. Flume定时启动任务 防止挂掉

    一,查看Flume条数:ps -ef|grep java|grep flume|wc -l       ==>15 检查进程:给sh脚本添加权限,chmod 777 xx.sh #!/bin/s ...

  2. 20155202 张旭 课下作业: Linux下IPC机制

    20155202张旭 Linux下IPC机制 IPC机制定义 在linux下的多个进程间的通信机制叫做IPC(Inter-Process Communication),它是多个进程之间相互沟通的一种方 ...

  3. JavaEE笔记(一)

    Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自 ...

  4. 微信小程序:实现日历功能

    一.功能描述 实现日历功能 二. 代码实现 1. index.wxml <view class='wrap'> <view> <view class='date-show ...

  5. 2018"百度之星"程序设计大赛 - 资格赛 1002 子串查询

    题面又是万能的毒毒熊... 实在不想写了,就只写了这题 记26个前缀和查询枚举最小值直接算 实在是氵的死 而且我忘记输出Case #%d 想了很久 >_< #include<bits ...

  6. directive指令二 require:'^ngModel'

    本章主要是讲指令与ngModel的交互. 在angular有一个内置指令叫ngModel,它是angular用来处理表单的最重要的指令.在源码中,页面上的model值的格式化.解析.验证都是由ngMo ...

  7. python赋值、浅拷贝、深拷贝区别

    在写Python过程中,经常会遇到对象的拷贝,如果不理解浅拷贝和深拷贝的概念,你的代码就可能出现一些问题.所以,在这里按个人的理解谈谈它们之间的区别. 一.赋值(assignment) 在<Py ...

  8. Apache Flink学习笔记

    Apache Flink学习笔记 简介 大数据的计算引擎分为4代 第一代:Hadoop承载的MapReduce.它将计算分为两个阶段,分别为Map和Reduce.对于上层应用来说,就要想办法去拆分算法 ...

  9. css选择器分类与作用

    本文旨在总结css中各种选择器及其相应用途(持续更新) 通配符(全局)选择器 样式:*{} 示例: 总结:选定文档中所有类型的对象,如图所示写在css样式文件开头用来定义全局通用的一些属性.font- ...

  10. TPO-21 C2 Which elective courses to take

    /* 加粗:语音部分 * 红色:单词部分 * 斜体:语法部分 * 下划线:信号词/句 */ 第 1 段 1.Listen to a conversation between a student and ...