亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用UglifyJS合并/壓縮JavaScript的方法

 更新時(shí)間:2012年03月07日 10:31:42   作者:  
在UglifyJS入門中主要記錄了UglifyJS的安裝,配置。篇末在命令行中使用了一個(gè)簡(jiǎn)單命令來(lái)壓縮一個(gè)JS文件。這篇以編程的方式去壓縮JS文件。即寫一個(gè)build.js文件,使用node命令執(zhí)行該文件
build.js中的代碼會(huì)去調(diào)用UglifyJS的接口函數(shù)以執(zhí)行壓縮任務(wù)。

1,去github下載最新的UglifyJS。兩種方式下載,如果安裝了git,進(jìn)入git控制臺(tái)使用如下命令
git clone git://github.com/mishoo/UglifyJS.git

或者使用http方式下載,點(diǎn)擊zip下載。解壓后其目錄結(jié)構(gòu)如下

 

2,新建一個(gè)項(xiàng)目(文件夾)myApp,將uglify-js.js和lib目錄拷貝到自己的項(xiàng)目中。如下

3,在myApp中新建一個(gè)compress.js,內(nèi)容如下

復(fù)制代碼 代碼如下:

var fs = require('fs');
var jsp = require("./uglify-js").parser;
var pro = require("./uglify-js").uglify;

var origCode = "var abc = function(){ var one = 5; return one;}";
var ast = jsp.parse(origCode); // parse code and get the initial AST
ast = pro.ast_mangle(ast); // get a new AST with mangled names
ast = pro.ast_squeeze(ast); // get an AST with compression optimizations
var finalCode = pro.gen_code(ast); // compressed code here
console.log(finalCode);

這段代碼的大概意思是取fs模塊,它是node的文件模塊。 接著取UglifyJS的兩個(gè)模塊。后面就是UglifyJS的壓縮流程了。

4,打開命令行,執(zhí)行compress.js

控制臺(tái)輸出了壓縮后的代碼。好了,就這么簡(jiǎn)單。
5,既然在node環(huán)境下,當(dāng)然可以寫一個(gè)函數(shù)直接讀取源文件,壓縮后輸出到指定的目錄。將以上代碼封裝到一個(gè)函數(shù)中,如下

復(fù)制代碼 代碼如下:

// 讀取一個(gè)文件,壓縮之
function buildOne(flieIn, fileOut) {
var origCode = fs.readFileSync(flieIn, 'utf8');
var ast = jsp.parse(origCode);
ast = pro.ast_mangle(ast);
ast = pro.ast_squeeze(ast);

var finalCode = pro.gen_code(ast);

fs.writeFileSync(fileOut, finalCode, 'utf8');
}

將我寫的ajax-1.0.js壓縮,輸出到myApp目錄中
復(fù)制代碼 代碼如下:
buildOne('ajax-1.0.js', 'ajax-min.js');

示例代碼UglifyJS_test

相關(guān)文章

  • 深入探討javascript中的數(shù)據(jù)類型

    深入探討javascript中的數(shù)據(jù)類型

    這篇文章主要介紹了深入探討javascript中的數(shù)據(jù)類型,需要的朋友可以參考下
    2015-03-03
  • javascript中substr,substring,slice.splice的區(qū)別說(shuō)明

    javascript中substr,substring,slice.splice的區(qū)別說(shuō)明

    某些情況下,負(fù)數(shù)的參數(shù)不識(shí)別.所以盡量不要用負(fù)數(shù)作參數(shù).免得瀏覽器不兼容,造成程序的出錯(cuò).
    2010-11-11
  • 分享javascript實(shí)現(xiàn)的冒泡排序代碼并優(yōu)化

    分享javascript實(shí)現(xiàn)的冒泡排序代碼并優(yōu)化

    本文給大家匯總介紹了幾個(gè)個(gè)人收藏的JavaScript實(shí)現(xiàn)冒泡排序的代碼,都是非常的不錯(cuò),有需要的小伙伴可以參考下
    2016-06-06
  • 淺談javascript 函數(shù)內(nèi)部屬性

    淺談javascript 函數(shù)內(nèi)部屬性

    這篇文章主要介紹了淺談javascript 函數(shù)內(nèi)部屬性的相關(guān)資料,需要的朋友可以參考下
    2015-01-01
  • JavaScript中Boolean對(duì)象的屬性解析

    JavaScript中Boolean對(duì)象的屬性解析

    這篇文章主要介紹了JavaScript中布爾對(duì)象的屬性解析,包括對(duì)constructor屬性和prototype構(gòu)造器的簡(jiǎn)單介紹,需要的朋友可以參考下
    2015-10-10
  • JavaScript中字符串拼接的基本方法

    JavaScript中字符串拼接的基本方法

    這篇文章主要介紹了JavaScript中字符串拼接的基本方法,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-07-07
  • javascript scrollLeft,scrollWidth,clientWidth,offsetWidth 完全詳解

    javascript scrollLeft,scrollWidth,clientWidth,offsetWidth 完全

    javascript scrollLeft,scrollWidth,clientWidth,offsetWidth 完全詳解,實(shí)例修正版。
    2009-07-07
  • JavaScript基礎(chǔ)語(yǔ)法與數(shù)據(jù)類型介紹

    JavaScript基礎(chǔ)語(yǔ)法與數(shù)據(jù)類型介紹

    這篇文章介紹了JavaScript基礎(chǔ)語(yǔ)法與數(shù)據(jù)類型,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • 最新評(píng)論