django-pipeline:为什么这些 JS 行会导致 yui-compressor 崩溃?
django-pipeline: Why do these JS lines cause yui-compressor to crash?
我有一个 Django 应用程序,在该应用程序中我试图捆绑和缩小所有 Javascript 文件和 CSS 文件。
为此,我使用的是 django-pipeline 1.2.6,我已经配置了我的设置文件,以便它使用默认的 YUICompressor 来压缩 JS 和 CSS 文件。我的设置文件是这样配置的:
...
# 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
当我 运行 命令 python src/foo_app/manage.py collectstatic
时,我得到了 "broken pipe" 异常。我很快意识到 yui-compressor 由于 JS 问题而崩溃。所以我开始隔离导致 yui-compressor 崩溃的文件和代码行。
我最终将其缩小为两行,为 jquery 弹出窗口上的按钮定义 class 属性:
$('#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
}
],
});
当我删除这些 class 定义时,yui-compressor 会很好地压缩我的 JS。然而,包含这些行后,yui-compressor 崩溃了。
为什么这些线路会导致压缩机崩溃?这是有效的 Javascript,并且确实正确设置了这些按钮的 class。
可能这与 yui-compressor ES6 class 关键字处理有关。尝试将 class
键用引号引起来:
改变这个:
class : 'foo-class bar-class' // <- this line
至:
'class' : 'foo-class bar-class' // <- this line
我有一个 Django 应用程序,在该应用程序中我试图捆绑和缩小所有 Javascript 文件和 CSS 文件。
为此,我使用的是 django-pipeline 1.2.6,我已经配置了我的设置文件,以便它使用默认的 YUICompressor 来压缩 JS 和 CSS 文件。我的设置文件是这样配置的:
...
# 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
当我 运行 命令 python src/foo_app/manage.py collectstatic
时,我得到了 "broken pipe" 异常。我很快意识到 yui-compressor 由于 JS 问题而崩溃。所以我开始隔离导致 yui-compressor 崩溃的文件和代码行。
我最终将其缩小为两行,为 jquery 弹出窗口上的按钮定义 class 属性:
$('#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
}
],
});
当我删除这些 class 定义时,yui-compressor 会很好地压缩我的 JS。然而,包含这些行后,yui-compressor 崩溃了。
为什么这些线路会导致压缩机崩溃?这是有效的 Javascript,并且确实正确设置了这些按钮的 class。
可能这与 yui-compressor ES6 class 关键字处理有关。尝试将 class
键用引号引起来:
改变这个:
class : 'foo-class bar-class' // <- this line
至:
'class' : 'foo-class bar-class' // <- this line