ちょっとした背景... 新しいサイトの基本テンプレートをセットアップしており、AngularJS、Bootstrap の JavaScript ファイル、Underscore.js などの一般的な JavaScript ライブラリをいくつか含めています。もちろん、これらのファイルを {% compress js %} でラップします。以下のコード例:
{% compress js %}
<script src="{{ STATIC_URL }}new_js/vendor/modernizr-2.6.2-respond-1.1.0.min.js"></script>
<script>window.jQuery || document.write('<script src="{{ STATIC_URL }}new_js/vendor/jquery-1.8.3.min.js"><\/script>');</script>
<script src="{{ STATIC_URL }}new_js/vendor/bootstrap.js"></script>
<!-- Angular -->
<script src="{{ STATIC_URL }}new_js/vendor/angular.min.js"></script>
<script src="{{ STATIC_URL }}new_js/angular/directives.js"></script>
<script src="{{ STATIC_URL }}new_js/angular/services.js"></script>
<script src="{{ STATIC_URL }}new_js/vendor/underscore-1.4.3.min.js"></script>
{% block extra_js %}{% endblock %}
{% endcompress %}
django-compressor は縮小フィルターのみを実行することを知っているため、おそらく縮小フィルターが正しい Javascript 出力を生成していない可能性があります。
JSMin で表示される JS エラーは次のとおりです。
SyntaxError: invalid increment operand
http://localhost:8000/site_media/static/cache/js/0f5eb5fb3b24.js
Line 448
そして、SlimIt によって生成されたファイルからのエラー:
SyntaxError: missing ; after for-loop initializer
http://localhost:8000/site_media/static/cache/js/7fbdf61f5abb.js
Line 1
ここで何が起こっているのか完全にはわかりませんが、ミニファイヤがこれらの一般的な js ライブラリで間違ったファイルを生成するとは信じがたいようです。
django-compressor の Javascript フィルタが共通ライブラリを台無しにするという問題に遭遇した人はいますか?