hello-world.jp.net
webエンジニアのメモ。とりあえずやってみる。

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

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


Related #js

[Android]WebViewでjsを有効にする

AndroidではWebViewを使用してWebページを開く際に、デフォルトだとjsが有効になっていないそうです。

CoffeeScript メモ その1

『 CoffeeScriptファーストガイド』を読んでのメモ その1。

IE8以下ではgetElementsByClassNameが使えない

タイトルの通り これを知らずに使ってハマりました

[Rails]日付と時間の入力フォームにDateTimePickerを使う(bootstrap3-datetimepicker-rails)

Ruby2.1.0, Rails4.1で確認 フォームで日時を入力する際に、カレンダーを表示して入力サポートをするDateTimePickerを導入したかったので調べてみました。