圣誕節,把網站所有的js代碼都壓縮成圣誕樹吧

jopen 9年前發布 | 8K 次閱讀 代碼

 

ENGLISH DOC :click me

EN summary: a Tool that can compress js source code to any ascii image,after that the result code can still run normal

**警告:壓縮后的js請人工確認后再投入生產使用,不保證100%可運行,目前測試的js以及souche.com官網的js都已經試驗過,基本可以保證99%的js壓縮后沒有問題

who am i?

js2image是一個可以把 js源代碼 壓縮成一個 ascii字符畫 的源代碼的工具,它的特色是壓縮后的代碼仍可運行,而不是簡單的拼成最終的圖案。

關于js2image的原理可以見我寫的這篇詳解文章: 圣誕節,把網站所有的js代碼都壓縮成圣誕樹吧。

壓縮后的示例,親測可用

http://f2e.souche.com/assets/js/lib/jquery-2.1.1.min.xmas.js

另外,本項目resource目錄中有多個已經跑通過的測試庫文件。

壓縮效果如下:

安裝依賴的系統模塊 graphicsmagick

# Ubuntu
$ sudo apt-get install graphicsmagick

# Fedora
$ sudo dnf install GraphicsMagick

# OS X
$ brew install graphicsmagick

# Chocolatey (package manager for Windows)
# (Restart of cmd/PowerShell is required)
$ choco install graphicsmagick

在Node.js中使用

執行以下命令安裝模塊:

$ npm install js2image --save

使用方法:

var Js2Image = require('js2image');

var image = './resource/tree.png';
var source = './resource/jquery.js';
var target = './target/xmas.js';
var options = {};

// 獲取結果的code
var sourceCode = fs.readFileSync(source);
Js2Image.getCode(sourceCode, image, options).then(function (code) {
  // code為生成的代碼
  console.log(code);
})

// 或者直接寫入文件
Js2Image.writeToFile(source, image, target, options).then(function (code) {
  // 生成的代碼已被寫入到文件target
  // code為生成的代碼
  console.log(code);
});


命令行工具使用方法

執行以下命令安裝全局命令:

$ npm install js2image -g

使用方法:

# 直接在命令行里執行此命令即可壓縮,默認壓縮出一個xmas.js后綴的文件。
# -s 源代碼路徑 必須的參數!
# -r 是否反相圖像 可省
# -i 指定使用的圖片的路徑,默認使用 ./resource/tree.png 可省

$ js2image -s ./resource/jquery.js

# 新增支持打包一個文件夾內所有js文件,慎用!不保證打包后的js100%運行正常,請經過人工測試確認。
$ js2image -s ./resource

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!