[ruby][js]closure-compiler gemを使う


[まとめ] 現在開催中のKindleセール情報はこちら

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をインストールする必要があります。」とエラーになってしまいました。

java

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をダウンロードしてきてインストールしたら動きました。

[まとめ] 現在開催中のKindleセール情報はこちら