摆脱混乱的html文件中开发,拥有development与product模式是我们梦寐以求的。

我买的需求是:

1.产出一定格式的目录结构,以供日常开发使用,脚手架功能。
2.在开发模式环境中我们按照文件类型不同分开开发,甚至html也分成小的区块widget化利于协作开发和维护,产出时合并成一个html,外联资源inline化。
3.在编码过程中实时保存并自动刷新浏览器,可以查看结果。
4.编码过程中进行代码检查,单元测试。
5.产出环境我们把这些碎片文件按照逻辑顺序压缩合并打包到一起组合成html,减少请求和代码体积。
6.上线后生成开发文档。

grunt 有没有这样的能力呢,接下来我们一起探索。

1.脚手架功能

grunt-init插件

npm install -g grunt-init

装好后要安装模板

git clone git://github.com/gruntjs/grunt-init-gruntplugin.git ~/.grunt-init/gruntplugin

详细

自己也可以根据要求创建自定义模板。

2.include功能

grunt-incoludes插件 (第三方

npm install grunt-includes
include "content.html"  //注意指令前后不要添加任何符号,会影响正则匹配(本人在最后面添加了一个;被卡了很久)  

详细

3.刷新浏览器

a.自动刷新功能

目前来说只实验了chrome浏览器,有关刷新的插件有两款。

livepage

livereload

这两款插件在chrome store中可以找到,都可以实现修改文件就刷新浏览器的功能。大家可以看看介绍,自行选择。

我选择livepage,因为启动后比较醒目。

b.自动保存我用的是webstorm 。。。。。所以没有去找这个功能。

4.

a.代码检查

grunt-contrib-csslint

grunt-contrib-jshint

b.单元测试

grunt-contrib-qunit

5.压缩、打包

npm install grunt-contrib-cssmin//css压缩

  详细

npm install grunt-contrib-uglify//注明的js压缩工具

  详细

npm install grunt-contrib-imagemin//图片压缩

  详细

npm install grunt-contrib-compress//打压缩包

   详细

6.产出文档

grunt-jsdoc (git被墙了,要用代理才能装)

npm install jsdoc@"<=3.3.0"

   详细

contrib-yuidoc

npm install grunt-contrib-yuidoc

详细

jsdoc的文档请移步

http://usejsdoc.org/

7.常用插件

contrib-clean 清理文件夹

npm install grunt-contrib-clean

详细

contrib-copy 拷贝文件夹

npm install grunt-contrib-clean

详细

这样说来grunt完全能够满足我们日常中的需求。

怎样获取自己想要的插件呢?

  1.grunt官网插件的名字都很明了,ctrl+f直接搜

  2.npm 使用关键字搜索

  3.github

  4.chrome商店,会找到意想不到的好东西

-----

  发现插件还蛮多的,写了不少。约定好的实例讲解只能放到下一讲了。

Gruntjs提高生产力(二)的更多相关文章

  1. Gruntjs提高生产力(三)

    以下例子来自真实项目,有所删减 grunt-test project 目录结构如下 一我的目的: 1.在src-dev目录中开发最终产出于src目录 2.src-dev中的index目录相当于一个wi ...

  2. Gruntjs提高生产力(四)

    思考: 1.grunt以工程为单位安装插件? 如果有新工程就要重新安装插件或者把安装好的插件拷贝过去.这样很麻烦,解决方案是需要用grunt的项目统一放在grunt项目中. 2.每次需要针对项目编写g ...

  3. Gruntjs提高生产力(一)

    gruntjs是一个基于nodejs的自动化工具,只要熟悉nodejs或者又一定js经验就可以熟练应用. 1. 安装 a. 保证已安装了nodejs,并带有npm b.安装客户端命令行工具,grunt ...

  4. [置顶] 提高生产力:开源Java工具包Jodd(Java的”瑞士军刀”)

    官方网站:http://jodd.org/ 下载地址:http://jodd.org/download/index.html Jodd=tools + ioc + mvc + db + aop + t ...

  5. [置顶] 提高生产力:Web开发基础平台WebCommon的设计和实现

    Web开发中,存在着各种各样的重复性的工作.为了提高开发效率,不在当码农,我在思考和实践如何搭建一个Web开发的基础平台. Web开发基础平台的目标和功能 1.提供一套基础的开发环境,整合了常用的框架 ...

  6. js基础提高(二)

    JavaScript基础提高(二) 上篇写的是JavaScript的历史.基本的数据类型和基本的语法进填的话讲的就深入一些了. js的函数 1.js函数定义的方式 (1)普通方式 语法:functio ...

  7. 【转】java提高篇(二)-----理解java的三大特性之继承

    [转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in ja ...

  8. 提高生产力:开源Java工具包Jodd(Java的”瑞士军刀”)

    官方网站:http://jodd.org/ 下载地址:http://jodd.org/download/index.html Jodd=tools + ioc + mvc + db + aop + t ...

  9. 提高生产力:文件和IO操作(ApacheCommonsIO-汉化分享)

    复制.移动.删除.比较.监控.文件读写 等文件和IO操作是编程中比较常用的功能.        幸运的是,Apache Commons IO等开源组件已经帮我们实现了.        我们可以不用重复 ...

随机推荐

  1. ios极光推送快速集成教程

    内容中包含 base64string 图片造成字符过多,拒绝显示

  2. 支持向量机SVM、优化问题、核函数

    1.介绍 它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解. 2.求解过程 1.数据分类—SVM引入 ...

  3. 前端神器ws激活步骤

    第一步:下载破解文件 也可以直接去我的github仓库中下载 第二步骤:操作bin目录的文件bin目录window下和mac下大致相同,故而不在单独说window a.将补丁复制到webstorm安装 ...

  4. Eclipse jvm启动参数在哪设置

    学习并转载自https://jingyan.baidu.com/article/624e7459653ca534e8ba5a26.html Java是一门非常受欢迎的编程语言,Java的开发人员多数使 ...

  5. Visual C++的DLL

    动态链接库 (DLL) 是作为共享函数库的可执行文件. 动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数. 函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译.链接 ...

  6. oracle在cmd下通过命令导入导出数据

    1.首先在cmd下切换到oracle的客户端的exp.exe所在的bin目录下,例如 D:\oracle\product\10.2.0\client_2\BIN 数据导出:导出的数据库名称是在tnsn ...

  7. adb常用操作

    1.安装程序 adb -s serialno install -r path 2.切换电源 adb -s serialno shell input keyevent 26 3.主页键 adb -s s ...

  8. Web.xml中自动扫描Spring的配置文件及resource时classpath*:与classpath:的区别

    Web.xml中自动扫描Spring的配置文件及resource时classpath*:与classpath:的区别 一.Web.xml中自动扫描Spring的配置文件(applicationCont ...

  9. 关于Mvc的分页写法

    关于asp.net mvc的分页,网上已经有很多了.本来也想借用,先看了杨涛写的分页控件,感觉用起来稍微有点复杂,而我只需要简单的分页.分页我写过很多次,原理也熟悉,就是构造首页.上一页.下一页及末页 ...

  10. JavaScript&jQuery获取url参数方法

    JavaScript&jQuery获取url参数方法 function getUrlParam(name){ var reg = new RegExp("(^|&)" ...