30 November 2013

Grunt为何物

Grunt和grunt插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器。

安装

前提是你已经安装了nodejs和npm

npm uninstall grunt -g   #卸载旧版本grunt(<0.4.0) (没装过请忽略)
npm install -g grunt-cli

安装grunt-cli并不等于安装了gruntgrunt CLI的任务很简单:调用与Gruntfile在同一目录中grunt。这样带来的好处是,允许你在同一个系统上同时安装多个版本的grunt。

安装 grunt-init(可选)

npm install grunt-init -g

可选安装,grunt-init是个脚手架工具,它可以帮你完成项目的自动化创建,包括项目的目录结构,每个目录里的文件等。具体情况要看你运行grunt-init指定的模板,以及创建过程中你对问题的回答。

如果找到一份本地安装的Grunt,CLI就将其加载,并传递Gruntfile中的配置信息,然后执行你所指定的任务。

CLI 是如何工作的

每次运行grunt 时,他就利用node提供的require()系统查找本地安装的grunt。正是由于这一机制,你可以在项目的任意子目录中运行grunt 。

假定Grunt CLI已经正确安装,并且已经有一份配置好package.jsonGruntfile.js文件的项目了,

  1. 将命令行的当前目录转到项目的根目录下。
  2. 执行npm install命令安装项目依赖的库。
  3. 执行 grunt 命令。

还可以通过grunt --help 命令列出所有已安装的Grunt任务(task)

  1. package.json:该文件用来为npm存放项目配置的元数据,与grunt关系最大的配置在devDependencies中。
  2. Gruntfile.js:注意G的大写,这个文件就是grunt的配置了,其中详细定义了每个任务的细节和执行任务的顺序等。

package.json

package.json应当放置于项目的根目录中,与Gruntfile在同一目录中,并且应该与项目的源代码一起被提交。在上述目录(package.json所在目录)中运行npm install将依据package.json文件中所列出的每个依赖来自动安装适当版本的依赖。

下面这条命令将安装Grunt最新版本到项目目录中,并将其添加到devDependencies内:

npm install grunt --save-dev

use grunt-contrib-cssmin instead, for csslint, use grunt-contrib-csslint.

*:匹配任意数量的字符,不包括/。
?:匹配单个字符,不包括/。
**:匹配任意数量的字符,包括/。
{}:允许使用逗号分隔的列表,表示“or”(或)关系。
!:用于模式的开头,表示只返回不匹配的情况。

grunt-contrib-imagemin windows

in your application’s package.json, add “jpegtran-bin”: “0.2.0” before the reference for imagemin, and blow away your node_module folder locally. Then run npm install again.

I use Windows 7 64 bit and here’s my workaround:

You don’t have to add “jpegtran-bin”: “0.2.0” to package.json Remove node_modules folder if necessary Do npm install jpegtran-bin@0.2.0 Do npm install It worked for me.

http://www.gruntjs.net/docs/getting-started/