uglifyjs压缩JS
一、故事總有其背景
年末將至,很多閑適的時間,于是刷刷微博,接觸各種紛雜的信息——美其名曰“學習”。運氣不錯,遇到了一個新名詞,uglifyjs. 據說是用來壓縮JS文件的,據說還能優化JS,據說是基于node的,還據說比Google Closure Compiler更帶感,哦?激起了我的好奇心。百之谷之,喲,相關的介紹還不少。然后折騰了個把小時,基本上知道了是個怎么回事。
我覺得吧,還是有些用的,即使是不是從事node開發的人,抽個小空,share之,于是就有了本文。人總有浮躁的時候,我也不例外,uglifyjs內部深入的運作是如何的,唉,我是有氣無力,不想去折騰,所以,本文更多是停留在應用層面。不過嘛,這樣反而受眾面廣一些。畢竟喜歡看《泰囧》的人要比《一代宗師》的多。
二、node相關的固定流程
凡事提及node應用,無非免不了類似下面的流程:
安裝node
安裝nmpnpm
安裝當前應用 – uglifyjs
前兩個網上太多示意了,我之前也講過,sorry, 我很懶。
uglifyjs安裝如下code:
npm install uglify-js -g
一個回車,于是啪啪啪,就有下圖所示的東東:
于是,下面就可以壓縮JS了。
三、uglifyjs JS壓縮
uglifyjs壓縮有很多的參數,詳見其github托管項目。其中有一些可選參數,如下部分截圖:
什么美化壓縮,空格多長,變量名是否變成短名字等……您有興趣可以自己去看看,如果今天不是星期五,如果不是要趕回去買菜,我就會翻譯下的——諸位,請原諒我吧,阿門!
下面演示如何使用uglifyjs壓縮JS.
我的桌面上有個名叫formini的文件夾,我會把要壓縮的文件放在其中,然后再壓縮。現在,我從內部拷貝了一個名叫inet.js的JS文件到這個文件夾中,然后:
打開cmd, 這個不會我就沒有辦法了
目錄引到formini文件夾,cd 然后什么什么的,這個不會我也沒有辦法了
如下代碼:
uglifyjs inet.js -o inet-min.js
再運行如下代碼,測試-m可選參數:
uglifyjs inet.js -m -o inet.min.js
如下截圖:
噢啦,現在就是看結果了,見下截圖:
90K的是沒有運行-m參數的,70K(69.4)的是運行的。-m參數所以就是把變量名變成a, b, c, d, ...
從實際應用角度講,上線的JS顯然要壓縮變量,減小一定的文件尺寸。
跟YUICompressor相比,大小只小了0.6K, 不過網上反映uglifyjs相比YUI壓縮很明顯,我這里的大小僅優化了0.6÷174=0.345%,這只能說明我寫的代碼還算比較優化,哈哈(突然想起了老婆的話,不要得瑟,深呼吸……深呼吸……)!
四、uglifyjs壓縮批處理
我們不可能每次都打開cmd去鍵入壓縮執行代碼,容易寫錯不說(如上面那個結果圖),還耗時,想想都會讓人瘋掉。懶人有懶法,花了點功夫,折騰了一個批處理文件,以后,想要壓縮JS,只要雙擊運行這個.bat文件就可以了!完整代碼如下:
@echo off
:: 設置壓縮JS文件的根目錄,腳本會自動按樹層次查找和壓縮所有的JS
SET JSFOLDER=C:UsersAdministratorDesktopformini
echo 正在查找JS文件
chdir /d %JSFOLDER%
for /r . %%a in (*.js) do (
@echo 正在壓縮 %%~a ...
uglifyjs %%~fa -m -o %%~fa
)
echo 完成!
pause & exit
新建一個txt文檔,任意命名,將上面的代碼粘貼進去,修改JSFOLDER后面的文件夾目錄為你自己的,然后把.txt后綴改成.bat就可以啦!然后雙擊就可以批量使用uglifyjs壓縮JS文件啦!
四、結束語
對于自己來講,本文內容算作備忘。目前而言,我還是uglifyjs不能壓縮CSS文件。不過嘛,了解下總會有幫助的。行文匆忙,文中要是有表述不準確的地方歡迎指正。
總結
以上是生活随笔為你收集整理的uglifyjs压缩JS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习之 weka学习(四)
- 下一篇: width,clientWidth,of