Grunt
Grunt是前端的瑞士军刀。目前看来,我很期待使用它来完成对LESS实时编译,jshint对JS文件的检测,以及js和css文件的合并,压缩。本文使用系统为windows 7 x64。
安装
说实话,最好的教程还是官方的。目前我使用的版本是v0.4.1。安装grunt需要先安装node.js。现在node的安装也很方便,下载下来直接安装完成之后,在cmd下测试node --version和npm --version是否正确显示即可。
之后需要借助npm来安装grunt-cli,注意,不是安装grunt。想要在cmd中使用grunt命令,需要npm install -g grunt-cli。完成后测试grunt --version看是否正确显示grunt-cli版本。
这样,就完成了grunt的安装。
在项目中使用
首先创建一个项目目录,由于grunt是node环境下运行,需要使用npm进行管理。所以项目必须要有一个package.json文件,里面最重要的是写明白devDependencies依赖关系。这里有一个例子(用于编译less)可以使用:
{"name":"ProjectName","version":"0.1.0","devDependencies": {"grunt":"*","grunt-contrib-less":"*","grunt-contrib-watch":"*"}}
有了package.json文件之后,我们就可以使用npm install来建立项目了。但是此时,还不能使用grunt命令,因为还差一个Gruntfile.js或者Gruntfile.coffee的文件。这个文件作用是grunt如何工作。继续那个例子(编译less)的Gruntfile.js如下:
module.exports =function(grunt){grunt.initConfig({ less: { compile: { files: {'css/test.css':'css/test.less'} }, yuicompress: { files: {'css/test-min.css':'css/test.css'}, options: { yuicompress:true} } }, watch: { scripts: { files: ['css/*.less'], tasks: ['less'] } }});grunt.loadNpmTasks('grunt-contrib-less');grunt.loadNpmTasks('grunt-contrib-watch');grunt.registerTask('default', ['less','watch']);};
这样,在项目路径下,就可以执行grunt来完成对css路径下less文件的实时编译了。
小技巧
我觉得入门的时候,最烦人的就是package.json和Gruntfile.js的创建。所以grunt有一个grunt-init的工具,项目地址。通过npm install -g grunt-init安装之后,还需要创建~/.grunt-init目录。在此目录中通过git clone来加载模版。模版加载完成之后,就可以通过grunt-init TEMPLATE来创建了。
另一个小技巧,在项目目录下,先通过npm init创建默认的package.json文件,然后npm install。以后需要用到哪个模块的时候(比如grunt),使用npm install --save-dev会自动把依赖关系写入到package.json中。--save-dev会自动维护package.json文件。