基于node.js的构建工具grunt.js
grunt.js 是基于node.js的自动化构建工具,类似Java世界里的Maven。
目前升级到v0.4版,相比v0.3,grunt不再是全局安装了,而是作为app的依赖存在,尽管还是需要一个全局安装即grunt-cli作为命令行启动:
安装:
npm install -g grunt-cli
插件:
grunt.js具有丰富的插件,全部由npm管理。还可以利用grunt API很方便的创建自己的插件,设置直接在gurntfile(好比pom.xml)里面直接扩展grunt task。这得易于js动态语言的特性。
v0.4以后各种常用插件基本都归入了 grunt-contrib-xxx系列,比如handlebars, jade, less, compass, jshint, jasmine, clean, concat, minify, copy, uglify, watch等
依赖冲突:
Maven中由于依赖传递会造成冲突,比如A依赖于C(v1.1),B依赖于C(v1.5),而A又依赖于B,则A同时依赖于两个版本的C。于是需要通过excludes排除掉其中一个,有时这是很麻烦的事情,需要反复实验。
gruntjs使用不同的思路,即每个模块的依赖全部放在自己的node_modules目录下,没有依赖传递。虽然这可能会造成一些重复,但省下了反复排除依赖的时间,而且js文件也都比较小,还是可以容忍的。