maaash.jp

what I create

batファイルでjavascriptコード圧縮

javascriptを書いてると、圧縮してあげたくなります。

Makeを利用したJavaScriptファイルの結合・圧縮
がとってもスマートなのだけれど、Windows環境だしMakefile手書きしたこと無いので、
bat(バッチ)ファイルで。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
set u=union.js  
set c=comp.js  
del %u%  
del %c%  
copy *.js %u% /B  
java -jar custom_rhino.jar -c %u% > %c% 2>&1  
[/code]  
1. これをjsファイルのあるフォルダに保存して compressjs.bat とかって名前付けて保存

2. <a href="http://dojotoolkit.org/docs/compressor_system.html" onclick="javascript:_gaq.push(['_trackEvent','outbound-article','http://dojotoolkit.org/docs/compressor_system.html']);">custom_rhino.jar</a>をダウンロードして同じフォルダに保存(JavaRuntimeは入れておく)

3. batファイルをダブルクリック

4. フォルダ内の.jsファイルを union.js にまとめた後、圧縮してできた comp.js が最終的なコード。

jsファイルのあるフォルダがちらばってる場合には、こんな感じ(’+'区切りでパスをつなぐ)。  

copy *.js %u% /B

copy js1\myjs.js+js2\myjs2.js %u% /B
“`

さらに、CSSファイルを保存すると同時にブラウザをリロード にならって秀丸の保存にフック(?)できると快適!

javascript圧縮エンジンは Dojo’s Compressor

日本語について。
Makeを利用したJavaScriptファイルの結合・圧縮 では

Dojo’s Compressorでは日本語文字列はうまく扱えないようなので、日本語文字列は別ファイルに記述する必要がある。

って書いてあるけれど改善されたのか、問題無し(圧縮前はUTF-8で保存した状態で確認)。
ただし、「\u7e3a\uff7e\u7e3a\ufffd」になって日本語は逆に容量増えちゃいますが。

いまいちコード削減量が大した事無かったのと、
使わせてもらっているjavascriptライブラリの権利周りをそのままにしておきたいので、
とりあえず未採用…

それより、ライブラリのうち未使用の関数を省くようなの、欲しいな。

Comments