grunt 單獨壓縮多個js和css文件

一,什麼是grunt,

grunt是一套前端自動化工具,一個基於nodeJs的命令行工具,一般用於:

① 壓縮文件

② 合併文件

③ 簡單語法檢查

對於其他用法,我還不太清楚,我們這裡簡單介紹下grunt的壓縮、合併文件

二,準備階段

1,nodejs環境

因為grunt是基於nodeJs的,所以首先各位需要安裝nodeJS環境

安裝nodejs。

安裝好之後檢查

打開cmd

輸入:node -v

輸出:v0.10.28(這個是我的版本)

三,安裝grunt

有了nodeJs環境後,我們便可以開始搞grunt了,因為我們可能在任何目錄下運行打包程序,所以我們需要安裝CLI官方推薦在全局安裝CLI(grunt的命令行介面)

輸入:npm install -g grunt-cli

這條命令將會把grunt命令植入系統路徑,這樣就能在任意目錄運行他,原因是

每次運行grunt時,它都會使用node的require查找本地是否安裝grunt,如果找到CLI便載入這個本地grunt庫然後應用我們項目中的GruntFile配置,並執行任務

ps這裡安裝好後一般在我們的C:UsersSOSAppDataRoaming
pm
ode_modules

會看到grunt-cli文件

四,添加package.json和Gruntfile.js文件

package.json

代碼如下:

{ "name": "test", "version": "0.1.0", "description": "test", "license": "MIT", "devDependencies": { "grunt": "~0.4.1", "grunt-contrib-jshint": "~0.6.3", "grunt-contrib-concat": "~0.3.0", "grunt-contrib-uglify": "~0.2.1", "grunt-contrib-requirejs": "~0.4.1", "grunt-contrib-copy": "~0.4.1", "grunt-contrib-clean": "~0.5.0", "grunt-strip": "~0.2.1" }, "dependencies": { "express": "3.x" }}

Gruntfile.js

代碼如下:

module.exports = function (grunt) { // 構建任務配置 grunt.initConfig({ //讀取package.json的內容,形成個json數據 pkg: grunt.file.readJSON("package.json"), //壓縮js uglify: { //文件頭部輸出信息 options: { banner: "/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */
" }, my_target: { files: [ { expand: true, //相對路徑 cwd: "js/", src: "*.js", dest: "dest/js/", rename: function (dest, src) { var folder = src.substring(0, src.lastIndexOf("/")); var filename = src.substring(src.lastIndexOf("/"), src.length); // var filename=src; filename = filename.substring(0, filename.lastIndexOf(".")); var fileresult=dest + folder + filename + ".min.js"; grunt.log.writeln("現處理文件:"+src+" 處理後文件:"+fileresult); return fileresult; //return filename + ".min.js"; } } ] } }, //壓縮css cssmin: { //文件頭部輸出信息 options: { banner: "/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */
", //美化代碼 beautify: { //中文ascii化,非常有用!防止中文亂碼的神配置 ascii_only: true } }, my_target: { files: [ { expand: true, //相對路徑 cwd: "css/", src: "*.css", dest: "dest/css/", rename: function (dest, src) { var folder = src.substring(0, src.lastIndexOf("/")); var filename = src.substring(src.lastIndexOf("/"), src.length); // var filename=src; filename = filename.substring(0, filename.lastIndexOf(".")); var fileresult=dest + folder + filename + ".min.css"; grunt.log.writeln("現處理文件:"+src+" 處理後文件:"+fileresult); return fileresult; //return filename + ".min.js"; } } ] } } }); // 載入指定插件任務 grunt.loadNpmTasks("grunt-contrib-uglify"); grunt.loadNpmTasks("grunt-contrib-cssmin"); // 默認執行的任務 grunt.registerTask("default", ["uglify", "cssmin"]);};

這個裡面主要對js和css進行批量壓縮

會依賴grunt-contrib-uglify和grunt-contrib-cssmin這兩個插件

做好後,我們需要在我們的項目的根目錄下運行命令

輸入:npm install

會將相關的文件下載下來

這個時候我們的根目錄下就會多個文件名字叫node_modules

這一步我們就可以壓縮

進入根目錄輸入命令grunt回車就ok

這個時候如果輸出有報錯可能說:「grunt-contrib-cssmin」notfound

那我們要把grunt-contrib-cssmin插件下載下來

輸入命令:npm install grunt-contrib-cssmin

OK

這個時候如果輸出有報錯可能說:Fatal error :Unable to find local grunt

或者找不到grunt的錯誤

那我們可以重新安裝grunt

把C:UsersSOSAppDataRoaming
pm
ode_modules下面的grunt-cli文件刪除。。重新執行

npm install -g grunt-cli

那麼最後我們就只用輸入grunt回車

看到輸出的內容就知道OK不OK了

運行OK後,我們的目錄裡面多了一個文件dest裡面的有css和js文件都是多個文件單獨的壓縮

這就省了我們手動去逐一壓縮的苦惱了。

對於grunt是如何工作的深入理解就可以看grunt官網了


推薦閱讀:

我的diy書屋的文件夾【內衣等】
半點寒心的文件夾【飲食養生】
自由翱翔-zyax的文件夾【育兒、教育】
堉的文件夾【年月日時干支大運流年】
普化散人的文件夾【因果 輪迴 命運】4

TAG:壓縮 | 文件 | 單獨 | grunt |