Skip to content

Instantly share code, notes, and snippets.

@ysasaki
Last active December 18, 2015 07:29
Show Gist options
  • Save ysasaki/5746626 to your computer and use it in GitHub Desktop.
Save ysasaki/5746626 to your computer and use it in GitHub Desktop.
JavaScript, CSS周りのPlack::Middleware::*のまとめ
  • Plack::Middleware::Compile
    • coffee, sass, less等をcompileするけど、自分で設定をごりごり書く
    • concatはしてくれない
  • Plack::Middleware::StaticShared
    • 一番良い感じ
    • versioningとcacheにも対応
    • URLが独特で気持ち悪い ./shared.js:v1:/js/foolib.js,/js/barlib.js
    • URLでconcatするファイルを指定できるので、複数のパターンでconcatすることもできる
    • concatはurlから自動で行う
    • minifyは自分でfilterを設定する必要あり
  • Plack::Middleware::Assets
    • concat, minify, cache(on memory only)あり
    • concatしたいファイルの指定をapp.psgiに書く必要がある
    • 複数パターンのconcatには対応していない
  • Plack::Middleware::Static::Combine
    • concatするだけ
    • concatしたいファイルの指定をapp.psgiに書く必要がある
    • 複数パターンのconcatには対応していない
  • Plack::Middleware::Static::Minifier
    • minifyするだけ
    • cacheあり
  • Plack::App::MCCS
    • minify, cache, gzipとか
    • 機能が豊富だけどconcatしてくれない
    • gzipをmiddleware層でやりたいなら、Plack::Middleware::Deflaterに任せれば良い
  • Plack::Middleware::Assets::RailsLike
    • railsのAsset Pipelineをパクって自作中
    • concat, minify, versioning, cache対応
    • URLはこんな感じ /assets/foo-2013061001.js 最後のハイフンから拡張子までの間がversion指定になる
    • 個別に設定ファイル(上の例だと/assets/foo.jsがそう)を作成するので、複数パターンのconcatにも対応。設定ファイルはrails準拠(※requireしか使えない)
    • ただしXSが必須
    • precompile用scriptがまだ未実装

他にもPlack::Middleware::File::(Sass|Less)みたいなのもある

@tokuhirom
Copy link

くらべた結果、どれつかうようにしたんでしょうか?

@ysasaki
Copy link
Author

ysasaki commented Jun 10, 2013

自作のAssets::RailsLikeを使ってます。まだ使い込んでないので、人に薦めるならcho45さんのStaticSharedがいいんじゃないでしょうか。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment