前端js和css的壓縮合併之grunt

2021-07-30 12:04:57 字數 2545 閱讀 9506

package.json放在根目錄(例如:c:\users\123)下,它包含了該項目的一些元資訊,如專案名稱、描述、版本號,外掛程式等。

}

grunt-contrib-jshint(js語法檢查)、grunt-contrib-concat(js合併)、grunt-contrib-uglify(採用uglifyjs壓縮js)、grunt-contrib-cssmin(css壓縮合併)、grunt-htmlhint(html語法驗查),以上都是常用的外掛程式。

安裝:uglify

npm install grunt

-contrib

-uglify

安裝concat

npm install grunt

-contrib

-concat

安裝:cssmin

npm install grunt

-contrib

-cssmin

外掛程式安裝完成後,檢視根目錄,會發現node_modules目錄,包含了相應的外掛程式目錄。

gruntfile.js由以下內容組成

module

.exports

=function

(grunt

);

2、專案和任務配置

3、載入grunt外掛程式和任務

4、定製執行任務

例如:

module

.exports

=function

(grunt),

dist:},

uglify:,

dist:}

},cssmin:,

compress:}

}});

//載入concat和uglify外掛程式,分別對於合併和壓縮

grunt

.loadnpmtasks

('grunt-contrib-concat'

);grunt

.loadnpmtasks

('grunt-contrib-uglify'

);grunt

.loadnpmtasks

('grunt-contrib-cssmin'

);//註冊任務

grunt

.registertask

('default',[

'concat'

,'uglify'

,'cssmin'

]);}

也可以單獨壓縮js和css,不進行合併,例如:

module

.exports

=function

(grunt),

my_target:}

]}},//壓縮css

cssmin:},

my_target:}

]}}});

// 載入指定外掛程式任務

grunt

.loadnpmtasks

('grunt-contrib-uglify'

);grunt

.loadnpmtasks

('grunt-contrib-cssmin'

);// 預設執行的任務

grunt

.registertask

('default',[

'uglify'

,'cssmin'

]);};

grunt api文件:

grunt.initconfig方法

用於模組配置,它接受乙個物件作為引數。該物件的成員與使用的同名模組一一對應。

每個目標的具體設定,需要參考該模板的文件。就cssmin來講,minify目標的引數具體含義如下:

expand:如果設為true,就表示下面檔名的佔位符(即*號)都要擴充套件成具體的檔名。

cwd:需要處理的檔案(input)所在的目錄。

src:表示需要處理的檔案。如果採用陣列形式,陣列的每一項就是乙個檔名,可以使用萬用字元。

dest:表示處理後的檔名或所在目錄。

ext:表示處理後的檔案字尾名。

grunt常用函式說明:

grunt.initconfig:定義各種模組的引數,每乙個成員項對應乙個同名模組。

grunt.loadnpmtasks:載入完成任務所需的模組。

grunt.registertask:定義具體的任務。第乙個引數為任務名,第二個引數是乙個陣列, 表示該任務需要依次使用的模組。

進入到專案根目錄,敲:

grunt
就會按gruntfile配置的檔案進行壓縮合併。

也可以單獨執行,例執行js壓縮命令:

grunt uglify
css壓縮命令

grunt cssmin

Qt中的非同步事件壓縮合併

曾經在mindray的uef框架中大量使用了訊息合併機制來解決訊息在佇列中堆積的問題,一直覺得qt中也應當存在事件合併機制。簡單幾行 能看出以下資訊 1.qt事件佇列支援多執行緒,在使用前加鎖 2.qt的事件佇列屬於執行緒,而物件與執行緒關聯 qevent timer qevent deffered...

gulp之自動化靜態資源壓縮合併加版本號

這個方案主要是為了實現js css image的壓縮合併 自動新增版本號 自動加瀏覽器字首和壓縮html。先把下面這裡外掛程式 npm i 外掛程式名 d安裝到專案環境內 目錄結構 root dist 此目錄為下面生成的 css js images rev index.html node modul...

gulp之自動化靜態資源壓縮合併加版本號

這個方案主要是為了實現js css image的壓縮合併 自動新增版本號 自動加瀏覽器字首和壓縮html。先把下面這裡外掛程式 npm i 外掛程式名 d安裝到專案環境內 目錄結構 root dist 此目錄為下面生成的 css js images rev index.html node modul...