これまでに見た中で最良のオプションはWebAssetsです。
ドキュメントから:
webassets は、Web アプリケーションのアセットを管理するための、依存関係に依存しない一般的なライブラリです。CSS と JavaScript ファイルをマージして圧縮し、さまざまなフィルターをサポートし、CoffeeScript や Sass などのコンパイラーとの連携をサポートします。
トルネードを使用してスタンドアロン モードで使用できます (特定のドキュメントを参照してください)。
セットアップは簡単で、非常に簡単です。
from webassets import Environment
static_directory = "../static"
output_directory = "/static"
my_env = Environment(static_directory, output_directory)
もちろん、さらにカスタマイズすることもできます。残りはドキュメントでかなりよく説明されています。
主な特徴:
- 簡単な統合
- 静的ファイルの事前圧縮が可能(コマンドラインツール)
- その場で静的ファイルを圧縮することが可能
- ほとんどの縮小/圧縮ライブラリ (JS、CSS) をサポート
- ブラウザ内での LESS/SASS コンパイルをサポート
- ブラウザー内での JS テンプレートの圧縮をサポート (Handlebars...)
- CSSスプライトマッパーをサポート
適切な構成後のテンプレート (ここでは Jinja2) の例:
# css
{% assets filters="cssmin", output="css/compiled-layout.css",
"css/custom.css",
"css/bootstrap-datepicker.css",
"css/typeahead.css" %}
<link rel="stylesheet" type="text/css" href="{{ ASSET_URL }}">
{% endassets %}
# js
{% assets filters="jsmin", output="js/lib/compiled-libs.js",
"js/lib/jquery-2.1.1.min.js",
"js/lib/jquery-ui.min.js",
"js/lib/bootstrap.min.js",
"js/lib/bootstrap-datepicker.js",
"js/lib/d3.min.js",
"js/lib/typeahead.bundle.min.js",
"js/lib/moment.min.js",
"js/lib/handlebars-v2.0.0.js",
"js/global.js" %}
<script type="text/javascript" src="{{ ASSET_URL }}"></script>
{% endassets %}
Flask に関連付けられた WebAssets を 1 年間問題なく使用してきました。完全に信頼性が高く、メンテナンスも行き届いています。数年間使用されており、最新のコミットは昨日でした。