麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 22:46:40
字體:
來源:轉載
供稿:網友

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
的時候,則會自動完成這個任務。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 在线成人免费视频 | 女人裸体让男人桶全过程 | 国内精品久久久久久2021浪潮 | 亚洲第一成人在线观看 | 午夜a狂野欧美一区二区 | 色阁阁69婷婷 | 国产免费一区二区三区在线能观看 | 强伦女教师视频 | 羞羞色在线观看 | 国产精品18久久久久久久 | 精品一区二区三区免费 | 亚洲资源在线 | 国产午夜精品久久久 | 在线中文字幕亚洲 | 精品一区二区在线观看视频 | 欧美日韩国产成人在线 | 欧美三级毛片 | 久久久久中文字幕 | 欧美黄 片免费观看 | 久久无毛| www亚洲| 亚洲综合网站 | 99视频观看 | 激情久久一区二区 | 国产精品成人久久 | 国产精品久久久久久久久岛 | 91成人在线免费视频 | 久久久婷婷一区二区三区不卡 | 中国黄色一级生活片 | 中文字幕在线观看日韩 | 狠狠撸电影 | 日韩理论电影网 | 91,视频免费看| 欧美亚洲国产成人综合在线 | 国产精品一区二区视频 | 日本在线免费观看视频 | 九九精品视频免费 | 中文字幕极速在线观看 | 自拍偷拍亚洲图片 | 成人一级视频在线观看 | 萌白酱福利视频在线网站 |