圧縮

コンプレッサー

アセット圧縮(別名ミニネーション)は、ブラウザがファイルをダウンロードする必要がある時間を短縮するために、ファイルのファイルサイズを縮小するプロセスです。通常、javascriptやスタイルシートに適用されます。

次のエンジンのいずれかを設定するには、開いapps/web/application.rbて書き込む必要があります。

# apps/web/application.rb
module Web
  class Application < Hanami::Application
    configure do
      assets do
        javascript_compressor :builtin
        stylesheet_compressor :builtin

        # ...
      end
    end
  end
end

圧縮をスキップする場合は、上の行のいずれかまたは両方をコメントするだけです。

 

JavaScript

私たちは次のエンジンをサポートしています:

  • :builtin-それは、他のアルゴリズムのように効率的ではありませんが、それはで書かれているので、それは良い出発点だ純粋なルビーそれが外部依存を必要としません
  • :yuiYahoo! YUIコンプレッサーをベースにしています。それにはyui-compressor宝石とJava 1.4+
  • :uglifier– それはUglifyJS2に基づいてます。uglifier gemとNode.js が必要です
  • :closureGoogle Closure Compilerに基づいてます。それはclosure-compiler宝石とJava が必要です

使用するに:yui:uglifier:closureコンプレッサーを使用するには、対応する宝石を追加する必要がありGemfileます。

 

スタイルシート

私たちは次のエンジンをサポートしています:

  • :builtin-それは、他のアルゴリズムのように効率的ではありませんが、それはで書かれているので、それは良い出発点だ純粋なルビーそれが外部依存を必要としません
  • :yuiYahoo! YUIコンプレッサーをベースにしています。それにはyui-compressor宝石とJava 1.4+
  • :sassそれはSassに基づいています。それはサスの宝石が必要です

使用するに:yuiは、:sassコンプレッサーを使用するには、対応する宝石を追加する必要がありGemfileます。

 

カスタムコンプレッサー

JSとCSSの両方に独自のコンプレッサーを使用できます。これはMUSTへの対応#compress(filename)と戻りString縮小出力で。

class MyCustomJavascriptCompressor
  def compress(filename)
    # ...
  end
end

次に、私たちの設定でそれを使うことができます:

# apps/web/application.rb
module Web
  class Application < Hanami::Application
    configure do
      assets do
        javascript_compressor MyCustomJavascriptCompressor.new
        stylesheet_compressor :builtin

        # ...
      end
    end
  end
end