国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

JavaScript代碼優(yōu)化新工具UglifyJS

開(kāi)發(fā) 前端
jQuery 1.5 發(fā)布以后又推出了一款代碼優(yōu)化新工具UglifyJS,經(jīng)測(cè)試后感覺(jué)壓縮效果非常令人滿(mǎn)意,所以本文將其推薦給大家。

jQuery 1.5 發(fā)布的時(shí)候 john resig 大神說(shuō)所用的代碼優(yōu)化程序從Google Closure切換到UglifyJS,新工具的壓縮效果非常令人滿(mǎn)意。 UglifyJS 是一個(gè)服務(wù)端node.js的壓縮程序。我測(cè)試了一下壓縮率確實(shí)比較高。 所以值得寫(xiě)篇文章推薦下。

你也可以嘗試一下在線(xiàn)版的Uglifyjs: http://sweet.fengyin.name/

如果你對(duì) uglifyjs 有興趣可以按照以下安裝方式進(jìn)行安裝。

1. 安裝 node.js 環(huán)境

2. 進(jìn)入 https://github.com/mishoo/UglifyJS 右上角 “Download” ZIP下載整個(gè)包。

3. 解壓打開(kāi) UglifyJS/bin/uglifyjs

4. 找到

  1. global.sys = require(/^v0\.[012]/.test(process.version) ? "sys" : "util");  
  2. var fs = require("fs");  
  3. var uglify = require("uglify-js"), // symlink ~/.node_libraries/uglify-js.js to ../uglify-js.js  
  4.     jsp = uglify.parser,  
  5.     pro = uglify.uglify;  

替換為

  1. global.sys = require(/^v0\.[012]/.test(process.version) ? "sys" : "util");  
  2. var fs = require("fs");  
  3. require.paths.unshift(__dirname + "/../");  
  4. var uglify = require("index"),  
  5. jsp = uglify.parser,  
  6. pro = uglify.uglify; 

5. cd 命令到 UglifyJS/bin/ 目錄。執(zhí)行 ./uglifyjs /你的js路徑/xx.js 如果安裝成功會(huì)把你的壓縮代碼直接顯示在命令行。你可以通過(guò) ./uglifyjs 1.js 2.js 把壓縮后的代碼保存到 2.js

至此 uglifyjs 安裝完成,我還寫(xiě)了一個(gè)PHP類(lèi)。可以調(diào)用 uglifyjs 進(jìn)行壓縮

  1. /*  
  2. # code by https://fengyin.name  
  3. # DEMO http://sweet.fengyin.name/  
  4. # Dual licensed under the MIT  
  5. */ 
  6.  
  7. $uglifyjs = new uglifyjs(array(  
  8.  'node_home'=>'/usr/local/bin/node',  
  9.  'uglifyjs_path'=>'/usr/UglifyJS/bin/uglifyjs'//uglifyjs壓縮工具的路徑。  
  10.  // -------- 附加的參數(shù) --------- //  
  11.  'prefix'=>'-b'//輸入的參數(shù) -b 是格式化 不輸入為壓縮,還有更多請(qǐng)參考命令用法。  
  12.  'append'=>''//保存文件,如果為空就是直接在命令行輸出結(jié)果。  
  13.  ));  
  14. $results =  $uglifyjs ->compress($_FILES['file']['tmp_name']);  
  15.  
  16.  
  17. class uglifyjs{  
  18.         function __construct($options = array()) {  
  19.             $this->options = $options;  
  20.         }  
  21.        function args($option) {  
  22.             return $option['node_home'].' '.$option['uglifyjs_path'].
  23. '.$option['prefix'].' '.$option['file'].' '.$option['append'];  
  24.      
  25.         }  
  26.         function exec($cmd) {  
  27.             exec($cmd.' 2>&1',$out, $status);  
  28.             return json_encode(array(  
  29.             'shell' => $cmd,  
  30.                 'output' => implode("\n",$out),  
  31.                 'status' => $status  
  32.             ));  
  33.         }  
  34.         function compress($file) {  
  35.             $this->options['file'] = $file;  
  36.             return $this->exec($this->args($this->options));  
  37.         }  
  38.     }  
  39. ?>  

文章最后附上 uglifyjs 的命令行中文說(shuō)明

使用:

這是一個(gè)腳本助手(工具)-bin/uglifyjs-使用這個(gè)庫(kù)可以用來(lái)把一個(gè)腳本壓縮到最小。

簡(jiǎn)介:

uglifyjs [ 選項(xiàng)... ] [ 文件 ]

文件參數(shù)應(yīng)該放在選項(xiàng)后面,uglifyjs 會(huì)讀取文件中的javascript代碼進(jìn)行處理。

如果你不指定輸出的文件名,那么他會(huì)把處理后的內(nèi)容輸出到命令行中。

例: uglifyjs 1.js 2.js 會(huì)創(chuàng)建一個(gè) 2.js 文件把 1.js處理完畢的內(nèi)容輸入到這里

例: uglifyjs 1.js 會(huì)讀取1.js內(nèi)容,并把結(jié)果輸出到命令行中。

支持的選項(xiàng):

-b or --beautify — 參數(shù) -b 或者 --beautify 用于美化(格式化)代碼。美化之前會(huì)壓縮代碼(未驗(yàn)證。)

-i N or --indent N — 縮進(jìn)級(jí)別空格數(shù)

例:uglifyjs -b 1.js 2.js 會(huì)把1.js的內(nèi)容格式后輸出到2.js

-q or --quote-keys — quote keys in literal objects (by default, only keys that cannot be identifier names will be quotes).

-nm or --no-mangle — 變量名不縮短,意味著不會(huì)把代碼的變量名縮短為 abcdefg

-ns or --no-squeeze — 不使用ast_squeeze()(可以使各種優(yōu)化之后的代碼更小,更具有可讀性。)

-mt or --mangle-toplevel — mangle names in the toplevel scope too (by default we don’t do this).

--no-seqs — 當(dāng)ast_squeeze()被調(diào)用的時(shí)候(除非你添加了--no-squeeze 參數(shù)才不會(huì)被調(diào)用)它將減少在一個(gè)代碼塊中重復(fù)聲明的行。例如:“a = 10; b = 20; foo();”將被重寫(xiě)為“a=10,b=20,foo();”。在各種場(chǎng)合,這將允許我們丟棄代碼塊中的括號(hào)(在一些語(yǔ)句塊變成一個(gè)獨(dú)立的聲明行之后)。這是默認(rèn)的,因?yàn)榻?jīng)我們測(cè)試,它似乎更安全并且能節(jié)省幾百bytes,但加上--no-seqs 后將被禁止。

--no-dead-code — 默認(rèn)情況下,UglifyJS將會(huì)刪除代碼中明顯無(wú)法訪(fǎng)問(wèn)的語(yǔ)句(如 return , throw , break 或者continue語(yǔ)句 ,以及一些不是函數(shù)/變量的的聲明)。通過(guò)這個(gè)選項(xiàng)可以禁用掉這個(gè)優(yōu)化功能。

-nc or --no-copyright — 默認(rèn)情況下,uglifyjs將在生成的代碼中保留初始的一些標(biāo)記(假設(shè)版權(quán)信息等)。如果你設(shè)置這個(gè)參數(shù)將被禁止。

-o filename or --output filename — 將結(jié)果輸出到一個(gè)指定文件名的文件中。如果沒(méi)有這個(gè)參數(shù),結(jié)果將會(huì)被輸出到命令行

-

-overwrite — 如果代碼是從一個(gè)文件中讀取的(不是直接標(biāo)準(zhǔn)輸入的)并且使用了--overwrite參數(shù),那么結(jié)果也將會(huì)被寫(xiě)進(jìn)相同的文件中去。

--ast — pass this if you want to get the Abstract Syntax Tree instead of JavaScript as output. Useful for debugging or learning more about the internals.

--ast — pass 如果你要獲取一個(gè)用來(lái)取代javascript輸出的抽象語(yǔ)法樹(shù),這些參數(shù)會(huì)在你進(jìn)行調(diào)試或?qū)W習(xí)內(nèi)部組件時(shí)很有用。

-v or --verbose — output some notes on STDERR (for now just how long each operation takes).

-v or --verbose — output 一些標(biāo)準(zhǔn)錯(cuò)誤提示(顯示每一次花費(fèi)多久)

--extra — enable additional optimizations that have not yet been extensively tested. These might, or might not, break your code. If you find a bug using this option, please report a test case.

當(dāng)你發(fā)現(xiàn)BUG時(shí)你可以增加一個(gè)中斷點(diǎn)用來(lái)對(duì)還沒(méi)有徹底的測(cè)試的代碼進(jìn)行優(yōu)化,你可以使用這個(gè)選項(xiàng)來(lái)生成一個(gè)測(cè)試用例。

--extra — enable

--unsafe — enable other additional optimizations that are known to be unsafe in some contrived situations, but could still be generally useful. For now only this:

foo.toString() ==> foo+””

想foo.toString() 這種用法 也是可行的,但是存在一些人為的不安全的情況,這事也需要添加一些優(yōu)化比如: foo+””

--max-line-len (default 32K characters) — add a newline after around 32K characters. I’ve seen both FF and Chrome croak when all the code was on a single line of around 670K. Pass –max-line-len 0 to disable this safety feature.

在超過(guò)大概32K字節(jié)的時(shí)候你要增加一行,我有發(fā)現(xiàn)過(guò)在火狐和chorme下檔代碼一行超過(guò)670K的時(shí)候它會(huì)發(fā)出報(bào)警聲。通過(guò)–max-line-len 0 去靜止這個(gè)安全屬性

--reserved-names — some libraries rely on certain names to be used, as pointed out in issue #92 and #81, so this option allow you to exclude such names from the mangler. For example, to keep names require and $super intact you’d specify –reserved-names “require,$super”.

--reserved-names — 些類(lèi)庫(kù)會(huì)依賴(lài)于特定的名稱(chēng)去使用,比如:#92 和#81 所以這個(gè)選項(xiàng)允許你去排除一些關(guān)鍵字。

【編輯推薦】

  1. 超強(qiáng)JavaScript編輯器 WebStorm 2.1 發(fā)布
  2. JavaScript跨域總結(jié)與解決辦法
  3. 用JavaScript 實(shí)現(xiàn)表格數(shù)據(jù)管理
  4. 黑客調(diào)查:最流行JavaScript庫(kù)是什么?
  5. JavaScript版幾種常見(jiàn)排序算法分享 
責(zé)任編輯:陳貽新 來(lái)源: 冷風(fēng)吟的博客
相關(guān)推薦

2015-08-06 14:54:50

JavaScript分析工具OneHeap

2009-09-14 10:01:35

EGLJavaScriptIBM

2016-05-06 10:02:33

CSSJavaScript工具

2022-08-31 12:15:09

JavaScript代碼優(yōu)化

2024-09-14 11:23:19

2023-09-06 10:44:09

Nitrux 3.0工具

2011-04-01 16:16:27

JavaScript

2019-12-06 09:34:18

工具代碼開(kāi)發(fā)

2011-07-13 09:46:23

javaScript

2017-01-13 13:35:42

Windows錯(cuò)誤代碼

2019-12-09 08:00:00

GraphQLAPI架構(gòu)

2019-10-09 15:51:45

Python 開(kāi)發(fā)編程語(yǔ)言

2009-03-12 16:18:14

Visual StudEclipseSilverlight

2023-10-10 10:57:12

JavaScript代碼優(yōu)化

2011-07-19 10:43:10

Small Basic

2009-06-08 14:54:11

產(chǎn)品綜合布線(xiàn)福祿克

2020-04-16 16:34:10

戴爾攻擊BIOS

2024-07-02 11:32:38

2013-10-31 17:29:57

Firefox新工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美成人剧情片在线观看| 黑人糟蹋人妻hd中文字幕 | 不卡av电影在线观看| 777777av| 日韩国产在线不卡视频| 黄色成人免费网| 国产一区二区三区在线看麻豆| 免费精品视频| 日韩片之四级片| 免费国产成人看片在线| 精精国产xxxx视频在线野外| 国产高清在线精品| 综合久久五月天| 农村妇女精品一二区| 久久影院资源站| 亚洲高清在线视频| 国产精品一区视频| av小说在线播放| 福利一区福利二区| 欧美激情欧美激情| 在线视频毛片| av不卡一区二区| 亚洲成人在线网站| 男女性激情视频在线观看| 真实国产乱子伦精品一区二区三区| 亚洲国产精品麻豆| 8848hh四虎| 99国产精品久久久久久久成人热| 日韩欧美国产午夜精品| 精品视频在线观看一区二区| 牛牛视频精品一区二区不卡| 亚洲一区二区三区视频在线| 国产一区二区黄色| 国产精品亚洲四区在线观看 | 国产精品国产三级国产普通话三级| 久久久久久久久久婷婷| 蝌蚪视频在线播放| 国产suv一区二区三区88区| 色一情一乱一乱一区91| 猛男gaygay欧美视频| 欧美精品国产精品| 97公开免费视频| 激情一区二区| 欧美日本国产在线| 日韩精品成人av| 不卡的av中国片| av免费精品一区二区三区| 国产成人a视频高清在线观看| 国产精品第一页第二页第三页| 538在线视频观看| 一区二区视频欧美| 日韩久久在线| 同性恋视频一区| 亚洲美女久久久| 日本成人免费| 美女视频第一区二区三区免费观看网站| 亚洲白虎美女被爆操| 久操网在线观看| 亚洲天堂黄色| 欧美日韩爱爱视频| 精品国产精品| 精品国产欧美一区二区三区成人 | jyzzz在线观看视频| 国产精品一区二区不卡| 国产精品永久免费| 91p九色成人| 国产精品久久久久久久久久东京| xxxxx.日韩| 日本欧美爱爱爱| 3d欧美精品动漫xxxx无尽| 黑丝美女久久久| 又色又爽又高潮免费视频国产| 一区二区免费视频| 欧美日韩黄色一级片| 亚洲少妇自拍| 国产999视频| 久久久夜精品| 成人动漫视频在线观看完整版| 久久97超碰色| 精品伦精品一区二区三区视频| 视频一区中文| 欧美日韩精品中文字幕一区二区| 亚洲精品一区二区妖精| 喜爱夜蒲2在线| 精品久久中文字幕| 992tv在线观看免费进| 久久久99久久| 日本天堂免费a| 蜜桃视频在线观看一区二区| 日本熟妇人妻xxxxx| 欧美视频一区二区三区四区| 免费黄色福利视频| 国产91精品精华液一区二区三区| 91p在线观看| 日韩电影在线观看中文字幕| 色av手机在线| 在线成人av网站| 狠狠操一区二区三区| 92看片淫黄大片欧美看国产片| 久久99青青| 成人在线免费高清视频| 欧美日韩国产一级二级| 999在线视频| 在线亚洲人成电影网站色www| 午夜精彩视频| 中文字幕中文在线不卡住| 成人爽a毛片免费啪啪动漫| 精品1区2区在线观看| 青青草综合网| 91丨九色丨国产| 日韩视频一区二区三区在线播放免费观看| www.亚洲天堂网| 欧美成人激情免费网| 99re6在线精品视频免费播放| 国产精品入口免费视频一| 日韩在线高清| 国产乱人伦精品一区二区| 亚洲三级在线播放| av在线www| 欧美精品久久久久久久免费观看| 久久99蜜桃精品| 欧美xxx黑人xxx水蜜桃| 亚洲精品在线91| 成人亚洲网站| 自拍偷拍一区二区三区| av亚洲精华国产精华精| 97在线资源在| 精品久久香蕉国产线看观看亚洲| 大伊香蕉精品在线品播放| 国产成人av在线| 久久精品久久久| 久久综合给合久久狠狠色| 可以看av的网站久久看| 成人在线观看免费| 成人欧美一区二区三区在线观看 | 日本中文一区二区三区| 欧美一级特黄aaaaaa在线看片| 6080国产精品一区二区| 欧美日韩国产网站| 2019亚洲日韩新视频| 天天做天天爱天天综合网| 日韩电影免费观看高清完整| 欧美日韩一区成人| 先锋a资源在线看亚洲| av软件在线观看| 久久中文字幕在线视频| 91麻豆国产福利在线观看| 真不卡电影网| 91系列在线观看| 日韩国产欧美在线播放| 国产成人久久777777| 久久婷婷国产麻豆91天堂 | 在线视频成人| 成人黄色在线观看| 美女视频黄免费的久久| 欧美成人性网| 成人国产精品一区| 91精品91久久久中77777| 成人国产精品一区二区免费麻豆| 麻豆一区二区三区在线观看| 中文字幕在线日韩| 91精品国产自产拍在线观看蜜| 亚洲日本高清| 日韩区国产区| 久久精品这里热有精品| 一本一道久久综合狠狠老精东影业| av在线free| 国产精品久久中文字幕| 欧美在线欧美在线| 狠狠色丁香久久婷婷综合丁香| jizz大全欧美jizzcom| 91麻豆精品国产| 久久精品国产**网站演员| 亚洲国产91视频| 精品综合久久久| 成人精品视频一区二区三区尤物| 成人久久精品| 一级视频在线免费观看| 欧美三级网色| 久久久精品国产| 色哟哟精品一区| 亚洲妇女av| 欧美啪啪免费视频| 日韩美女免费线视频| 日韩一二三区视频| 国产欧美精品一区aⅴ影院 | 欧美黄视频在线观看| 视频一区不卡| 无吗不卡中文字幕| 三级久久三级久久| 欧美wwwwww| 国产免费永久在线观看| 17婷婷久久www| av在线免费不卡| 五月开心六月丁香综合色啪| 97人人做人人爽香蕉精品| 高清性色生活片在线观看| 欧美午夜精品一区| 成人一区二区视频| 午夜欧美激情|