作为一个正在准备从java 后端转大前端,一直都有想着,在js 的世界里面有没有类似于maven或者gradle 的东西..然后,就找到了grunt 这玩意
诸如ant,maven,gradle,make 之流的,那么我们为什么要学这么一个工具了,我们用IDE编程不是好好的吗,要让人去学这么一个工具,那么必然要有这个工具能够为我们搞定什么的原因.
选择Grunt原因
管理我们的文件依赖
随心所欲的批处理任务
整合常用的前端工具,js混淆,文件合并压缩.
说了这么多,上面就是我们为什么要选择grunt.js 作为我们项目构建的工具,如果你没有任何项目构建的概念,我建议了就不要看有关grunt的任何资料了,包括本文.因为,你看不懂我接下来我要写东西,也看不懂任何有关grunt相关资料,所以,就不要浪费时间了.
如果,你之前有接触过构建工具,或者你现在有项目构建的概念,那么任务(tasks)这个概念想必理解起来不会有太大的难度了.
只要在我们的Gruntfile.js 文件写上这么几句
接着我们只要在当前目录运行 <code>grunt test</code>
就能看到控制台输出
Hello World.
接下来咱们有个node 环境就可以想干嘛的就干嘛了..停住!如果只是这样,这跟我们写个shell脚本有什么区别呢?实际上grunt跟shell 脚本没什么区别,只是grunt有一个node 运行环境,可以比写shell脚本简单那么一些,如果你已经是shell脚本达人,我觉得没有再学grunt必要了.
有时候,我们有很多任务,不过这里任务,都可以归类为一中,我们就需要注册一个多任务来处理这种情况,例如,文件的操作就有,创建,打开,重命名,这些任务都可以归类为文件操作任务
这个时候我们运行的时候,就会看到如下接口
<code>grunt file:create</code>
create: ‘source file’
<code>grunt file:open</code>
open: ‘open file’
<code>grunt file:delete</code>
delete: ‘delete file’
那么在我们自定义多任务的时候,可以通过<code>this.target</code> 获得当前任务命令,然后通过<code>this.data</code> 获取到我们的配置值,接下来就是发挥你的想象力的时候了.
实际上grunt不是什么神奇的时候,它最不过是一个运行在node的一个命令行工具,可以方便我们用js写脚本而已.
grunt-contrib-watch
监听文件修改
grunt-curl
想curl 下载远程js
grunt-contrib-clean
文件清理工具
grunt-contrib-cssmin
css压缩工具
grunt-contrib-copy
文件复杂工具
本文转自youxiachai 博客,原文链接: http://blog.51cto.com/youxilua/1286465 如需转载请自行联系原作者