使用Grunt.js管理你項目的應用說明

來源:互聯網
上載者:User

Grunt.js是什嗎?
Grunt.js是一個Javascript Task Runner(Javascript任務運行器),其基於NodeJS,可用於自動化構建、測試、產生文檔的專案管理工具。

Grunt.js並不是僅僅是構建工具,實際上他只是任務運行器,管理每個子任務的自動化運行,我們還能使用他做更多東西。
 

為什麼使用Grunt.js?
簡單的說:為了自動化。
對於前端項目,例如:

•為了明確模組分工,我們可能會將Javascript代碼拆成很小很小的一個個js檔案,但是我們知道,在最終頁面上,我們知道過多的js檔案會產生過多的Http Request,這不利於頁面最佳化。所以我們可能希望可以合并這些js檔案的工具。
•為了使用者端請求的檔案盡量小,我們希望我們的HTML、Javascript等檔案能進行壓縮。
•我們可能需要對原始碼進行一些單元測試和迴歸測試。
•我們可能希望有工具能夠通過原始碼備忘自動產生文檔,免得手動再寫文檔。
•……
很明顯,這一切都有各種各樣的小工具能幫我們做到,但是我們希望最好能輸入一個命令,開啟一個程式,或者乾脆每次修改檔案儲存後自動進行這一切事情。

以前我們可能使用NodeJS自己寫一個build程式,但是現在Grunt.js能夠提供我們需要的一切。

安裝Grunt.js
Grunt.js 0.4之後,其不再使用全域方式安裝整個Grunt.js,而是在全域安裝Grunt.js Client,然後在當前項目中安裝Grunt,來避免未來不同項目對Grunt不同版本的依賴關係。

如果安裝了之前的版本,可以使用npm的命令來刪除掉原來的Grunt.js。

npm uninstall -g grunt
然後安裝Grunt.js Client:

npm install -g grunt-cli
 

package.json
package.json是項目的設定檔,有一些項目的依賴資訊,以及作者、版本等資訊。我們先寫一個簡單的package.json。
複製代碼 代碼如下:
{
  "name": "my-project",
  "version": "0.1.0",
  "devDependencies": {
    "grunt": "~0.4.1"
  }
}

name屬性,表示該項的名字。

version屬性,則是該項目的版本號碼。

devDependencies屬性,則包含該項目的依賴,目前我們的依賴只有grunt,以及版本為0.4.1。
在終端大概包含該package.json的目錄,輸入命令:

npm install
我們會發現,該目錄此時多了一個node_modules檔案夾,裡面有個grunt檔案夾,這個就是我們安裝在項目的Grunt.js。

用Grunt.js進行壓縮js代碼
grunt-contrib-uglify是Grunt.js的一個任務模組,其基於著名的js壓縮公用程式uglify,進行js壓縮任務。

首先我們在項目依賴加上grunt-contrib-uglify,package.json如下:
複製代碼 代碼如下:
{
  "name": "my-project",
  "version": "0.1.0",
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-uglify": "~0.2.0"
  }
}

再使用:

npm install
我們就安裝了grunt-contrib-uglify了。

寫Gruntfile.js
複製代碼 代碼如下:
module.exports = function(grunt) {

    // 給grunt添加些設定
    grunt.initConfig({
        uglify: {
            options: {
                banner: '/*! 著作權,這裡亂寫 */\n'
            },
            build: {
                src: 'src/core.js', //要壓縮的源檔案,我們也可以用*表示通配,比如'src/*.js'
                dest: 'dst/core.js' //壓縮後輸出的位置
            }
        }
    });

    // 載入 "uglify" 外掛程式任務
    grunt.loadNpmTasks('grunt-contrib-uglify');

    // 定義預設需要執行的任務
    grunt.registerTask('default', ['uglify']);

};

Gruntfile.js檔案用於定義任務,以及工作群組的執行順序等。上面的檔案我們定義將src/core.js檔案壓縮後輸出成dst/core.js。則我們輸入命令:

grunt
的時候,則會自動完成這個任務。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.