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.