2016-07-13 5 views
1

Ich habe eine Django-App, und innerhalb der App versuche ich, alle Javascript-Dateien und CSS-Dateien zu bündeln und zu minimieren.Django-Pipeline: Warum verursachen diese JS-Linien einen Absturz des yui-Kompressors?

Dazu benutze ich django-pipeline 1.2.6, und ich habe meine Einstellungsdatei so konfiguriert, dass sie den Standard-YUICompressor verwendet, um JS- und CSS-Dateien zu komprimieren. Meine Einstellungen Datei wird wie folgt konfiguriert:

... 

# 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 

Als ich lief den Befehl python src/foo_app/manage.py collectstatic, bekam ich die „Rohrbruch“ Ausnahme. Ich erkannte schnell, dass der Yui-Kompressor wegen eines Problems mit dem JS abstürzte. Also begann ich damit, die Datei und die Codezeile zu isolieren, die den Yui-Kompressor zum Absturz brachten.

verengt ich es schließlich zu zwei Zeilen nach unten, die das Klassenattribut für die Schaltflächen auf einem jquery Popup definieren:

$('#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 
      } 
     ], 
    }); 

Wenn ich diese Klassendefinitionen entfernen, Yui-Kompressor komprimiert ganz gut meine JS. Mit diesen Zeilen stürzt yui-compressor jedoch ab.

Warum würden diese Leitungen den Kompressor zum Absturz bringen? Dies ist ein gültiges Javascript, und dies setzt die Klasse dieser Schaltflächen korrekt.

Antwort

1

Vielleicht ist dies mit yui-Kompressor ES6-Klasse Schlüsselwörter Verarbeitung verwandt. Versuchen class Schlüssel in Anführungszeichen zu wickeln:

Änderung dieser:

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

zu:

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

Dies scheint das Problem gelöst zu haben. Vielen Dank. –

Verwandte Themen