從 Cocos2D-X v2.1.4 版本開始,增加了 Cocos2D-console 命令行工具,該工具的其中一個功能是:把 .js 文件轉(zhuǎn)換為 .jsc 文件,該文件是字節(jié)碼格式,可以提高代碼的安全性。
使用這個工具的方式很簡單。以引擎自帶的 TestJavaScript 項目為例: 首先我們 cd 到 Cocos2D-console 的目錄
goldliontekiMacBook-Pro:~ goldlion$ cd /Users/goldlion/Documents/developer/cocos2d-x-3.0beta/tools/cocos2d-console/console
然后可以看到里面有很多 .py 腳本
cocos2d_jscompile.py
cocos2d_version.py
cocos2d.py
cocos2d_new.py
其中 cocos2d.py 是我們要使用的主腳本文件。使用命令 ./cocos2d.py jscompile --help 查看編譯字節(jié)碼的命令格式
goldliontekiMacBook-Pro:console goldlion$ ./cocos2d.py jscompile --help
Usage: cocos2d.py jscompile -s src_dir -d dst_dir [-c -o COMPRESSED_FILENAME -j COMPILER_CONFIG]
Options:
-h, --help show this help message and exit
-s SRC_DIR_ARR, --src=SRC_DIR_ARR
source directory of js files needed to be compiled,
supports mutiple source directory
-d DST_DIR, --dst=DST_DIR
destination directory of js bytecode files to be
stored
-c, --use_closure_compiler
Whether to use closure compiler to compress all js
files into just a big file
-o COMPRESSED_FILENAME, --output_compressed_filename=COMPRESSED_FILENAME
Only available when '-c' option was True
-j COMPILER_CONFIG, --compiler_config=COMPILER_CONFIG
The configuration for closure compiler by using JSON,
please refer to compiler_config_sample.json
參數(shù)非常簡單,一個輸入目錄,一個輸出目錄,后面加一組可選參數(shù)。該工具在遍歷 .js 文件時支持文件夾遞歸訪問,在輸出 .jsc 文件時支持按照源文件夾的結(jié)構(gòu)全部新建文件夾。易用性還是不錯的。
對 TestJavaScript 其中一個文件夾 ExtensionsTest 使用 Cocos2D-console 工具進行加密來測試。輸出路徑設(shè)置為桌面
./cocos2d.py jscompile -s /Users/goldlion/Documents/developer/cocos2d-x-3.0beta/samples/Javascript/Shared/tests/ExtensionsTest -d /Users/goldlion/Desktop/ExtensionsTest
打開輸出的 ExtensionsTest 文件夾看到,所有 .js 都變成了 .jsc,并且體積都大幅度減小。
下面說一下可選參數(shù),可選參數(shù)的意思是使用 closure compiler 工具壓縮代碼為一個文件。
COMPRESSED_FILENAME 是壓縮后的文件名,最好使用 xxx.js,因為工具會自動再后面加個 c
COMPILER_CONFIG 是壓縮時調(diào)用的配置文件,需要根據(jù)項目需求自己填寫,在 bin 目錄下有一個做好的缺省例子可以使用,compiler_config_sample.json
我并不建議使用這種做法,因為: