grunt安裝步驟 (含node.js安裝)

grunt是javascript世界的構建工具,安裝grunt,就是爲了實現項目的“自動化”,減輕前端工作者的負擔。

grunt的官網:  http://www.gruntjs.net/


grunt的安裝

一、首先需要安裝node.js(已安裝node.js的跳過此步驟)

(1)到node.js的官網http://nodejs.org/下載.msi程序包,點擊安裝,一直按“下一步”即可。安裝後可在菜單欄看到:


(2)安裝完.msi程序包之後必須重啓電腦,否則無法正確使用命令行界面。如果不這樣做,您將無法使用節點在命令提示符。想知道爲什麼嗎?您需要刷新Windows,因爲其調整的註冊表文件,誰知道還有什麼在您的計算機上的發動機罩下。

(3)測試是否安裝成功。

(3.1)首先介紹2個文件夾中打開命令行界面的小技巧

Windows 小技巧 —— 在文件夾中打開命令提示符

1. 在地址欄裏輸入“CMD”並回車

2. 按住 Shift 鍵然後在文件夾空白處右鍵鼠標,選擇“在此處打開命令窗口”

(3.2)命令行界面中測試。

@在任何地方(我在 “D:\Program Files\nodejs\” 下建立)建一個hello.js文件,內容是“console.log('hello,this is nodejs.')”。

@打開命令行界面,進入hello.js文件所在目錄 D:\Program Files\nodejs\ ,輸入node hello.js,可看到輸出“hello,this is nodejs.”。

@亦可以直接輸入命令 node -e "console.log('hello world!')"  測試:

3.3)建立http服務器。建立一個http.js文件,內容如下,在瀏覽器裏輸入localhost:8000即可輸出“Hello World!”。

var http = require("http");
http.createServer(function(request, response) {
    response.writeHead(200, {"Content-Type": "text/html"});
    response.write("Hello World!");
    response.end();
}).listen(8000);


二、現在到安裝grunt.js了。

打開命令行界面,輸入“npm grunt-cli -g”即可。-g是全局的意思,整條指令的意思是把grunt添加到系統環境變量中,然後你就可以在任何目錄中使用grunt了。不用-g,則可以在當前項目中安裝grunt,則此grunt只適用於該項目。


三、在項目中運用grunt.js。

(1)建立項目文件夾grunt-program-1,並在項目文件夾下建立build文件夾用來放置編譯文件。後面的package.json文件和Gruntfile.js文件放在build文件夾下面,目錄結構圖如下:


(2)在項目中添加grunt和插件了。先配置package.json文件(package.json 文件到 build 文件夾下),然後打開命令行界面,切換到項目的文件夾目錄的build下,輸入npm install 即可安裝瞭如package.json配置所寫的grunt v0.4.1以及grunt的插件了。grunt的插件放在build文件夾下的node_modules裏面。

package.json文件的配置如下:

{
  "name": "grunt-program-1",
  "version": "0.1.0",
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-jshint": "~0.6.0",
    "grunt-contrib-uglify": "~0.2.2",
    "grunt-contrib-qunit": "~0.5.2",
    "grunt-contrib-watch": "~0.6.1",
    "grunt-contrib-concat": "~0.5.0"
  }
}



(3)添加完grunt.js和插件後,就建立Gruntfile.js文件來配置我們的項目。(Gruntfile.js 文件到 build 文件夾下

Gruntfile.js文件配置如下:

module.exports = function(grunt) {

  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),

    /* 自定義參數 */
    meta:{
      basePath: '../',
      srcPath: '../src/',
      distPath: '../dist/',
      testPath: '../test/'
    },
    /* concat 合併js文件 */
    concat: {
      options: {
        // 用於合併文件之間的字符 例如分號";"或者換行符"\n"
        separator: '\n',
        banner: '/* 這是合併的js ,時間:<%= grunt.template.today("dd-mm-yyyy HH:MM:ss")%> */\n'
      },
      dist: {
        //要合併的js文件
        src: ['<%= meta.srcPath %>/**/*.js'],
        //合併後的js文件,全部合併爲了app.js
        dest: '<%= meta.distPath %>/<%= pkg.name %>.js'
      }
    },

    /* 壓縮文件 */
    uglify: {
      options: {
        // 此處定義的banner註釋將插入到輸出文件的頂部
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy HH:MM:ss") %> */\n'
      },
      dist: {
        files: {  // 此處壓縮合並的文件
          '<%= meta.distPath %>/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>']
        }
      }
    },

    /*  */ 
    qunit: {
      files: ['<%= meta.testPath %>/**/*.html']
    },
    /*  */ 
    jshint: {
      files: ['Gruntfile.js', '<%= meta.srcPath %>/**/*.js'],
      options: {
        //這裏是覆蓋JSHint默認配置的選項
        globals: {
          jQuery: true,
          console: true,
          module: true,
          document: true
        }
      }
    },
    /*  */ 
    watch: {
      files: ['<%= jshint.files %>'],
      tasks: ['jshint', 'qunit']
    }
  });

  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-jshint');
  grunt.loadNpmTasks('grunt-contrib-qunit');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-concat');

  // 在命令行上輸入"grunt test",test task就會被執行。
  grunt.registerTask('test', ['jshint', 'qunit']);

  // 只需在命令行上輸入"grunt",就會執行default task
  grunt.registerTask('default', ['jshint', 'qunit', 'concat', 'uglify']);

  // 只執行某一個插件功能,則輸入 "grunt 插件名" , 例如 "grunt concat"

};


(4)編譯看看。在build文件夾同一級目錄下建立src文件夾(如上面的目錄結構圖);寫兩個測試的文件a.js和b.js;在命令行界面輸入grunt concat 則在dist文件下會生成grunt-program-1.js文件;輸入grunt uglify在會生成grunt-program-1.min.js文件。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章