Paper.jsをソースからビルド

ScriptographerをCanvasで動かすフレームワークであるPaper.js。
通常であればDownloadからzipファイルをダウンロードして読み込めばそのまま使えるんだけど、githubにソースからビルドする方法が載っていたのでやってみた。

githubからPaper.jsをclone

git clone --recursive git://github.com/paperjs/paper.js.git

buildフォルダに移動して、

./build.sh

でdistフォルダにpaper.jsができるんだけど、これだとzipファイルのものと同じなので、compressedしたい。

NodeJSのUgrifyJSを使う

npmでUglifyJSをインストール。カレントディレクトリはbuildのまま、作業を続ける。

npm install -g uglify-js

nvmを使っているので、-gを付けてグローバルインストールすると、currentで使用しているバージョンのlibフォルダの中のnode_modulesというフォルダにインストールされる。
paper.jsプロジェクトのフォルダと同じ階層にuflifyjsという名前でシンボリックリンクを作成。
(githubに載っているサンプルはシンボリックリンクの引数が逆で、一つ目にソースを指定)

ln -s ~/.node/v0.4.9/lib/node_modules/uglify-js ../../uglifyjs

作成されているか確認

ls -l ../../
lrwxrwxr-x   1 hayashiyosuke  staff   60 Sep 24 03:15 uglifyjs -> /Users/hayashiyosuke/.node/v0.4.9/lib/node_modules/uglify-js

できてる。

comressedオプションでビルド

./build_sh compressed

確認

ls -l ../dist 
-rw-rw-r--  1 hayashiyosuke  staff  144000 Sep 24 03:22 paper.js

70KBほど軽くなってる。
開いてみると、余分なスペースが取り除かれ、変数名や関数名が短くなってる。

今後JavaScriptはかつてのCになると言われているけど、こんな感じでビルドして使うものになってるんだな。