Grunt基於Node.js,其中 npm 是 Node.js 的包管理器,而Grunt和Grunt插件就經過 npm 安裝並管理。
Grunt 0.4.x 必須配合Node.js >= 0.8.0版本使用。
安裝Node.js:
去Node.js官網,點擊INSTALL下載並安裝,如今的Node.js會自動安裝npm。
安裝完成以後,打開命令行,進行後續的操做(開始->輸入CMD 或 開始->全部程序 ->命令提示符)。
進入Node.js的安裝目錄(默認路徑爲"C:\Program Files\nodejs"):
cd \pro*\nod*
能夠經過如下2個命令,查看 node.js 和 npm 的版本號:
node -v
npm -v
安裝Grunt:
若是你以前安裝過老的0.3版本,請先卸載:
npm uninstall -g grunt
安裝Grunt命令行(CLI):
npm install -g grunt-cli
注1:-g表明全局安裝,Grunt有二個版本:服務器端版本(grunt)和客戶端版本(grunt-cli)。
注2:安裝grunt-cli並不等於安裝了grunt!grunt CLI的任務很簡單:調用與Gruntfile在同一目錄中的grunt。這樣帶來的好處是,容許你在同一個系統上同時安裝多個版本的grunt。而grunt使用模塊結構,除了安裝命令行界面之外,還要根據須要安裝相應的模塊。這些模塊應該採用局部安裝,由於不一樣項目可能須要同一個模塊的不一樣版本。
上述命令執行完後,grunt 命令就被加入到你的系統路徑中了,之後就能夠在任何目錄下執行此命令了。
建立新的Grunt項目:
假設這個項目安裝在D盤根目錄,咱們首先進度D盤:
d:
建立項目文件夾:
mkdir testProject
進入文件夾:
cd testProject
接着在你的項目文件夾根目錄下添加兩個文件:package.json 和 Gruntfile。
package.json: 此文件被npm用於存儲項目的元數據,以便將此項目發佈爲npm模塊。
Gruntfile: 此文件被命名爲 Gruntfile.js 或 Gruntfile.coffee,用來配置或定義任務(task)並加載Grunt插件。
建立package.json文件:
package.json應當放置於項目的根目錄中,與Gruntfile在同一目錄中,而且應該與項目的源代碼一塊兒被提交。大部分 grunt-init 模版都會自動建立特定於項目的package.json文件。
方法一:執行 npm init 命令(根據默認的grunt-init模板,引導你建立一個「基本」的package.json文件):
npm init
根據提示填寫信息(都允爲空):
name: (GruntT) // 模塊名稱:只能包含小寫字母數字和中劃線,若是爲空則使用項目文件夾名稱代替
version: (0.0.0) // 版本號
description: // 描述:會在npm搜索列表中顯示
entry point: (index.js) // 模塊入口文件
test command: // 測試腳本
git repository: // git倉庫地址
keywords: // 關鍵字:用於npm搜索,多個關鍵字用空格分開
author: // 做者
license: (BSD-2-Clause) // 開原協議
方法二:手動建立package.json文件,添加項目/模塊的描述信息:
{ "name": "my-project", "version": "0.1.0" }
附:
package.json官方文檔
一個較完整的package.json文件
安裝Grunt和Grunt插件:
方法一:手動添加,修改package.json文件:
{ "name": "my-project", "version": "0.1.0", "devDependencies": { "grunt": "~0.4.1", "grunt-contrib-cssmin": "~0.7.0" } }
注:devDependencies裏面的參數,指定了項目依賴的Grunt和Grunt插件版本。其中"~0.7.0"表明安裝該插件的某個特定版本,若是隻需安裝最新版本,能夠改爲"*"。
而後執行:
npm install
這時你會發現項目文件夾中多了個node_modules文件夾,其裏面就是對應的Grunt和Grunt插件。
方法二:自動安裝:
經過 npm install <module> --save-dev 命令
安裝最新版的Grunt:
npm install grunt --save-dev
接着安裝咱們所須要的插件:
npm install grunt-contrib-cssmin --save-dev
注:其中--save-dev,表示將它做爲你的項目依賴添加到package.json文件中devDependencies內。若是你要安裝指定版本的Grunt或者Grunt插件,只須要運行npm install grunt@VERSION --save-dev命令,其中VERSION就是你所須要的版本(指定版本號便可)。
附:Grunt官方插件列表,其中帶星號的爲官方維護的插件。
建立Gruntfile.js文件:
module.exports = function(grunt) { // 配置任務參數 grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), cssmin: { combine: { files: { 'css/release/compress.css': ['css/*.css'] // 指定合併的CSS文件 ['css/base.css', 'css/global.css'] } }, minify: { options: { keepSpecialComments: 0, /* 刪除全部註釋 */ banner: '/* minified css file */' }, files: { 'css/release/master.min.css': ['css/master.css'] } } } }); // 插件加載(加載 "cssmin" 模塊) grunt.loadNpmTasks('grunt-contrib-cssmin'); // 自定義任務:經過定義 default 任務,可讓Grunt默認執行一個或多個任務。 grunt.registerTask('default', ['cssmin']); };
執行配置中全部的任務:
grunt
執行某個特定的任務:
grunt cssmin
測試:
接着咱們在項目文件夾中建立個子文件夾,命名爲:CSS
而且在裏面建立base.css和master.css,2個CSS文件,你能夠隨便寫點內容在裏面。
而後在命令行中執行grunt,看到以下提示說明執行成功:
Running "cssmin:combine" (cssmin) task
File css/release/compress.css created.
Running "cssmin:minify" (cssmin) task
File css/release/master.min.css created.
Done, without errors.
參考文檔:
http://www.gruntjs.net/docs/getting-started/
http://www.gruntjs.org/article/installing_grunt.html