1. 程式人生 > >grunt壓縮js和css檔案(1)

grunt壓縮js和css檔案(1)

接下來是個人的理解:

壓縮js

1、node安裝,node會自動安裝npm。

 安裝完之後檢視版本:node -v 和 npm -v

這裡寫圖片描述

2、新建專案後package.json 安裝。

命令:npm init(直接一直回車,輸入yes之後回車資料夾下就會出現package.json )
注意出錯:name不能包含大寫字母。
name: (reactJsCssPak2) reactJsCssPak
Sorry, name can no longer contain capital letters.

這裡寫圖片描述

//package.json
{
  "name": "reactpak",
  "version"
: "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" }

3、安裝grunt命令列工具grunt-cli。

  命令: npm install -g grunt-cli
  安裝完之後檢視版本:grunt -version

4、安裝grunt及其外掛。

npm install grunt --save-dev
npm install grunt-contrib-jshint --save-dev  (  js語法檢查)
npm install grunt-contrib-uglify --save-dev  (  壓縮,採用UglifyJS)
npm install grunt-contrib-concat --save-dev ( 合併檔案)
或
npm install grunt grunt-contrib-jshint grunt-contrib-uglify grunt-contrib-concat --save-dev
//安裝的時候node_modules出現,而且也出現這四個目錄,之後package.json也會顯示這四個目錄(那是因為在安裝外掛的時候加了"--save-dev")。 
{
  "name": "reactpak",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies"
: { "grunt": "^1.0.1", "grunt-contrib-concat": "^1.0.1", "grunt-contrib-jshint": "^1.1.0", "grunt-contrib-uglify": "^2.3.0" } }

5、新建檔案Gruntfile.js

新建一個js,裡面包含a.js和b.js ,再新建Gruntfile.js。目錄如下:

這裡寫圖片描述

//a.js
function a() {
    console.log("aaa")
}
//b.js
function b() {
    console.log("bbb")
}

第一種測試:我只想壓縮

//Gruntfile.js
module.exports = function(grunt) {
  // 配置
  grunt.initConfig({
      pkg : grunt.file.readJSON('package.json'),
      uglify : {
          options : {
              banner : '\n'
          },
          build : {
              src : 'js/*.js',
              dest : 'dest/dest.min.js'
          }
      }
  });
  // 載入uglify外掛,壓縮
  grunt.loadNpmTasks('grunt-contrib-uglify');
  // 註冊任務
  grunt.registerTask('default', ['uglify']);
}; 

這裡寫圖片描述

//dest.min.js
function a(){console.log("aaa")}function b(){console.log("bbb")}

總結:單個js直接壓縮,多個js直接合並壓縮。

第二種測試:合併與壓縮

//Gruntfile.js
module.exports = function(grunt) {
  // 配置
    grunt.initConfig({
        pkg : grunt.file.readJSON('package.json'),
        concat : {
            domop : {
                src: ['js/a.js', 'js/b.js'],
                dest: 'desttwo/desttwo.js'
            }
        },
        uglify : {
            options : {
                banner : '\n'
            },
            build : {
                src : 'desttwo/desttwo.js',
                dest : 'desttwo/desttwo.min.js'
            }
        }
    });
    // 載入concat和uglify外掛,分別對於合併和壓縮
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    // 註冊任務
    grunt.registerTask('default', ['concat', 'uglify']);
}; 

這裡寫圖片描述

//desttwo.js
function a() {
    console.log("aaa")
}

function b() {
    console.log("bbb")
}


//desttwo.min.js
function a(){console.log("aaa")}function b(){console.log("bbb")}

總結:這個過程是先合併再壓縮,出現兩個js檔案。

第三種測試:我想把所有的js單獨壓縮

//Gruntfile.js
module.exports = function(grunt) {
    // 配置
    grunt.initConfig({
        pkg : grunt.file.readJSON('package.json'),
        uglify : {
            options : {
                banner : '\n'
            },
            my_target: {
                files: [
                    {
                        expand: true,
                        //相對路徑
                        cwd: 'js/',
                        src: '*.js',
                        dest: 'destthree/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';
                        }
                    }
                ]
            }
        }
    });
    // 載入concat和uglify外掛,分別對於合併和壓縮
    grunt.loadNpmTasks('grunt-contrib-uglify');
    // 註冊任務
    grunt.registerTask('default', ['uglify']);
}; 

這裡寫圖片描述

//a.min.js
function a(){console.log("aaa")}
//b.min.js
function b(){console.log("bbb")}

相關推薦

grunt壓縮jscss檔案(1)

接下來是個人的理解: 壓縮js 1、node安裝,node會自動安裝npm。 安裝完之後檢視版本:node -v 和 npm -v 2、新建專案後package.json 安裝。 命令:npm init(直接一直回車,輸入yes之後回車

gulp配置自動重新整理瀏覽器壓縮jscss檔案圖片

1.在專案目錄下新建gulpfile.js檔案,配置如下內容 var gulp = require("gulp"); var cssnano = require("gulp-cssnano"); var rename = require("gulp-rename"); var uglify =

gulp壓縮jscss檔案

gulp的簡介這裡就不贅述了,最新對js和css壓縮有用webpack的,但是研究了一下,好麻煩,最終轉向gulp。 下面開始正式的壓縮步驟: 總體概略是: 安裝nodejs -> 全域性安裝g

grunt 合並壓縮jscss文件(二)

1.0 ajax depend cnp com .html post tle runt 具體node及文件配置請看: grunt 安裝使用(一) 要壓縮的文件 --src/ ajax.js assets.js touch.js zepto.js

webpack學習(六)打包壓縮jscss

網頁 com 換行符 最小化 合並 標準 註意 resolve hash 打包壓縮js與css 由於webpack本身集成了UglifyJS插件(webpack.optimize.UglifyJsPlugin)來完成對JS與CSS的壓縮混淆,無需引用額外的插件, 其命令we

在MVC中使用Bundle打包壓縮jscss

inf pts sax uget body info strong 頁面 target 第一步:安裝 安裝“System.Web.Optimization”:在中“NuGet”中搜索 安裝。 第二步:配置 配置“Views”目錄下的“web.config”文件增

新手教學 gulp 合併壓縮jscss檔案

文章目錄 打包壓縮js、css檔案 如何執行 打包壓縮js、css檔案 先上程式碼,如下所示 // 獲取 gulp var gulp = require('gulp'); // 獲取 uglify 模組(用於壓縮 JS) var ug

JavaScript使用localStorage快取Jscss檔案

對於WebApp來說,將js css檔案快取到localstorage區可以減少頁面在載入時與HTTP請求的互動次數,從而優化頁面的載入時間.特別是當移端訊號不好高延遲時優化效果還是很顯見的 下面的程式碼可以實現此功能: <!DOCTYPE html> <html lang="e

YUIcompressor批處理壓縮jscss

@echo off rem 正在壓縮... echo 正在壓縮Css檔案 for /f "delims=" %%i in ('dir /b /a-d /s "*.css"') do call java -jar C:\Work_area\tool\yuicomp

根據正則表示式匹配頁面中jscss檔案

          // 匹配           List<string> srcList = new List<string>();           List<string> linkList = new List<string>();   

iOS 專案本地匯入html檔案jscss檔案顯示不出來

最近一直在做h5相關,發現本地html模板匯入進專案後,js和css並顯示不出來 然後找了很多資料,發現是路徑的問題 一個是 Create groups for any added folders (建立虛擬結構-包結構) 一個是 Create folder r

使用yuicompressor-maven-plugin合併壓縮jscss

1.宣告 plugin.版本號這個可以不宣告,不宣告的時候用最新的, <executions>這個節點還會報錯,但是可以忽略,不影響build war包 <groupId>net.alchim31.maven</groupId><a

利用 filter 機制 給 靜態資源 url 加上時間戳,來防止jscss檔案的快取,利於開發除錯

直接上程式碼: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

在專案中使用Ext需要引入的JsCss檔案

<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" /> <script typ

在ASP.NET MVC中,使用Bundle來打包壓縮jscss

在ASP.NET MVC4中(在WebForm中應該也有),有一個叫做Bundle的東西,它用來將js和css進行壓縮(多個檔案可以打包成一個檔案),並且可以區分除錯和非除錯,在除錯時不進行壓縮,以原始方式顯示出來,以方便查詢問題。 這裡僅簡單記錄下如何使用。 首先

使用yuicompressor-maven-plugin壓縮jscss檔案

本文介紹通過使用yuicompressor-maven-plugin外掛實現js及css程式碼的自動壓縮,方便整合到持續整合環境中,如jenkins。 一、配置yuicompressor-maven-plugin 在pom檔案中增加該外掛的定義,示例如下: <

使用useref合併html中零散的jscss檔案

安裝: $ npm install gulp-useref --save-dev 使用: var gulp = require('gulp'); var useref = require(‘g

第十一節:Bundles壓縮合並jscss及原理分析

string數組 tab 速度 操作 spn sof 參考 reader 調試 一. 簡介 1.背景:瀏覽器默認一次性請求的網絡數是有上限的,如果你得js和css文件太多,就會導致瀏覽器需要多次加載,影響頁面的加載速度, MVC中提供Bundles的方式壓縮合並js和cs

吉特倉儲管系統(開源)--使用Grunt壓縮JS檔案

  在吉特倉儲管理系統開發的過程中大量使用到了JS,隨著JS檔案的增多我們需要對JS進行有效的管理,同時也要對JS檔案進行一些壓縮。文字用於記錄一下使用grunt壓縮JS的操作步驟,便於遺忘之後記錄查詢,文章內容非常淺顯。   一. 什麼是grunt     JavaScript世界的構建工具,官

jscss檔案gzip靜態壓縮以及gzip動態壓縮

               useSendfile="false"                compression="on"      compressionMinSize="2048"                noCompressionUserAgents="gozilla, traviata