我安装了django-pipeline并使用它将LESS文件编译成css文件。大多数时候,当我运行collectstatic时,它按预期工作:
但是,如果LESS文件有语法错误,django-pipeline将忽略它并使用旧版本的stylesheet.css而不告诉我:
删除stylesheet.css文件会强制django-pipeline在出现错误时通知我,但我更愿意,只是告诉我。是否存在强制django-pipeline告诉我何时出现语法错误或者这只是一个错误/缺少功能的设置?
我的设置非常简单。以下是相关设置:
STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'
PIPELINE = True
PIPELINE_CSS_COMPRESSOR = 'pipeline.compressors.yui.YUICompressor'
PIPELINE_LESS_BINARY = '/usr/bin/lessc'
PIPELINE_COMPILERS = (
'pipeline.compilers.less.LessCompiler',
)
PIPELINE_CSS = {
'min' : {
'source_filenames': (
'scripts/stylesheet.less',
),
'output_filename': 'scripts/stylesheet.min.css'
},
}
答案 0 :(得分:1)
据我所知,只发送两个信号,请参阅:http://django-pipeline.readthedocs.org/en/1.3.16/signals.html。一个在处理CSS之后,一个在处理Javascript之后。
您可以尝试在管道/编译器/ less.py中添加失败信号:
less_failure = django.dispatch.Signal()
CSScode = self.execute_command(command, cwd=dirname(infile))
if "Error:" in CSScode: less_failure.send(sender=self.__class__);
return CSScode;
有关信号的更多信息,请访问:https://docs.djangoproject.com/en/dev/topics/signals/