2016-07-13 5 views
1

私はDjangoアプリを持っています。アプリ内では、すべてのJavascriptファイルとCSSファイルをバンドルして縮小しようとしています。django-pipeline:なぜこれらのJS行がyui-compressorをクラッシュさせるのですか?

これを行うには、django-pipeline 1.2.6を使用しています。また、デフォルトのYUICompressorを使用してJSファイルとCSSファイルを圧縮するように設定ファイルを設定しました。私の設定ファイルは次のように設定されています。私は、コマンドを実行したpython src/foo_app/manage.py collectstatic

... 

# PIPELINE SETTINGS (for compressing/bundling css and js files) 
STATICFILES_STORAGE = "pipeline.storage.PipelineCachedStorage" 

PIPELINE_YUI_BINARY = "/usr/bin/yui-compressor" 

PIPELINE_JS = { 
    'min': { 
     'source_filenames': (    
      "js/*.js", 
     ), 
     'output_filename': 'js/min.js' 
    } 
} 

PIPELINE_CSS = { 
    ... 
} 

PIPELINE = True 

は、私が「壊れたパイプ」例外が発生しました。私はすぐに、JSに関する問題のためにyui-compressorがクラッシュしていることに気付きました。だから私はyui-compressorをクラッシュさせていたファイルとコード行を隔離するプロセスを開始しました。

私は最終的にはjqueryのポップアップ上のボタンのクラス属性を定義する2つのラインにそれを絞り込む:私はこれらのクラス定義を削除すると、YUI-コンプレッサは私のJSがうまく圧縮

$('#some-modal').dialog({ 
     ... 
     buttons: [ 
      { 
       text : 'Print', 
       click : function() { 
        ... 
       }, 
       class : 'foo-class bar-class' // <- this line 
      }, 
      { 
       text : 'Close', 
       click : function() { 
        ... 
       }, 
       class : 'foo-class bar-class' // <- this line 
      } 
     ], 
    }); 

。しかし、これらの行が含まれていると、yui-compressorはクラッシュします。

なぜこれらの行がコンプレッサーをクラッシュさせるのですか?これは有効なJavascriptです。これにより、これらのボタンのクラスが正しく設定されます。

答えて

1

おそらく、これはyui-compressor ES6クラスのキーワード処理と関連しています。引用符でclassキーを包むようにしてください:

変更この:

class : 'foo-class bar-class' // <- this line 

へ:

'class' : 'foo-class bar-class' // <- this line 
+0

これは、問題を解決しているようです。ありがとう。 –

関連する問題