[ruby][js]closure-compiler gemを使う
jsの圧縮にはclosure-compilerを使うといいというのをチラホラ聞いてはいたのですが、これまで使ったことがなく。
調べていたらgemとしてclosure-compilerが公開されていたので試してみました。
documentcloud / closure-compiler
- インストール
gem install closure-compiler
rbenv rehash
- ドキュメントを見ながらsample.jsを圧縮するスクリプトを作成
# compile.ru
require 'rubygems'
require 'closure-compiler'
name = 'sample'
File.open("./public/js/#{name}.min.js", 'wb') do |output|
output.write Closure::Compiler.new.compile(File.open("public/js/#{name}.js", 'r'))
end
- 実行
ruby compile.ru
実行後、public/js/sample.js から public/js/sample.min.js が生成されます。
2015/6/26追記
Yosemiteにしてから上記を試そうとしたら、以下のように「このWebコンテンツを表示するには、Java Runtime Environmentをインストールする必要があります。」とエラーになってしまいました。
YosemiteにはそもそもJavaが含まれていないということが分かったので、 Apple公式サイト(Java for OS X 2014-001)からJavaをダウンロードしてインストールしました。
しかし、インストール自体はできたのですが、ruby compile.rbを実行すると Unsupported major.minor version 51.0 とまたもやエラーになってしまいました。
最終的に、 Oracleの公式サイト(Java SE Development Kit 8 - Downloads)から最新版のJDKをダウンロードしてきてインストールしたら動きました。