[转]如何在 node.js 執行 UglifyJS 對 JavaScript 進行壓縮或美化

前一篇文章介紹了如何在 Cygwin 環境下安裝 node.js,我的原始目的只是為了要能正常執行UglifyJS 而已,原本想說在 node.js 寫的程式都是 JavaScript 應該不會有什麼問題吧,結果是目前版本的 UglifyJS 還有點小問題導致無法正常執行,解決方式也很簡單,以下是 UglifyJS 的安裝與使用說明。

下載 UglifyJS 最新版原始碼

env GIT_SSL_NO_VERIFY=true git clone https://github.com/mishoo/UglifyJS.git

clip_image001

備註:如果不加上 env GIT_SSL_NO_VERIFY=true 這段環境變數的話,很可能會導致 git 在 clone 原始碼的時候發生 SSL 憑證發生問題的錯誤,錯誤訊息為:error: SSL certificate problem, verify that the CA cert is OK. 如下圖示。

clip_image002

完整的解決辦法可參考 HTTPS github access 的解答,或執行以下指令:

  • cd /usr/ssl/certs
  • wget http://curl.haxx.se/ca/cacert.pem
  • cat cacert.pem | awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
  • rm -f cacert.pem
  • c_rehash

進入 UglifyJS 的目錄

cd UglifyJS/

測試執行 ./bin/uglifyfs

./bin/uglifyfs

在預設的原始碼之下,不管在 Linux 或 Cygwin 下都會發生 Cannot find module 'ulify-js' 的錯誤:

clip_image003

解決的方式有 3 種:

1. 修改 bin/uglifyjs 這支 UglifyJS 主程式,並加入程式所在的相對路徑,讓 bin/uglifyjs 在執行時能找到對應的模組。如下圖示:

clip_image004

2. 將 UglifyJS 所有模組都複製到 node 預設的 ~/.node_libraries 目錄下 ( 僅自己能用 )

請在 UglifyJS 所在目錄執行以下 3 行指令即可

mkdir ~/.node_libraries

cp -a lib/ ~/.node_libraries/

cp index.js ~/.node_libraries/uglify-js.js

clip_image005

3. 將 UglifyJS 所有模組都複製到 node 預設的 /usr/local/lib/node 目錄下 ( 讓所有使用者都能用 )

請在 UglifyJS 所在目錄執行以下 2 行指令即可

mkdir /usr/local/lib/node/uglify-js

cp -a index.js lib/ /usr/local/lib/node/uglify-js/

uglifyfs 主程式複製到 /usr/local/bin 目錄下

cp bin/uglifyjs /usr/local/bin/uglifyjs

UglifyJS 安裝完成!

UglifyJS 的基本使用方式

1. 壓縮 JavaScript 程式碼

uglifyjs example.js > example.min.js

clip_image006

2. 美化 JavaScript 程式碼

uglifyjs -b example.min.js > example.js

clip_image007

posted @ 2011-02-21 16:28  ☆磊☆  阅读(1283)  评论(0编辑  收藏  举报