这可能不是您正在寻找的,因为该策略中有一个丑陋的部分,但值得一提的是恕我直言。
概述
- 在浏览器中以调试模式编译较少以进行开发。这使您的集成商能够更快地工作并在浏览器中查看语法错误报告,并使开发变得很棒。
- 使用 django-compressor进行生产,将你所有的 less 预编译到 css 中,让性能变得很棒。
- 能够在您的 less 脚本中重用:引导类、变量等,等等……否则还有什么不好的?问题是你必须让你的编译器在同一次运行中同时编译引导程序和你自己的 less 脚本。
Django级别的基本策略
这就是您的site_base.html
模板可以包含的方式:
{% if debug %}
<link rel="stylesheet" type="text/css" href="{% static 'autocomplete_light/style.css' %}" />
<link href="{{ STATIC_URL }}bootstrap/less/bootstrap.less" charset="utf-8" type="text/less" rel="stylesheet">
<script type="text/javascript">less = {}; less.env = 'development';</script>
<script type="text/javascript" src="{{ STATIC_URL }}less.js" ></script>
{% else %}
{% compress css %}
<link rel="stylesheet" type="text/css" href="{% static 'autocomplete_light/style.css' %}" />
<link href="{{ STATIC_URL }}bootstrap/less/bootstrap.less" charset="utf-8" type="text/less" rel="stylesheet">
{% endcompress %}
{% endif %}
好吧,这就是丑陋的部分:它不是很干燥......但它确实很好用。如您所见,您需要调试上下文处理器。
这就是您的设置的样子:
COMPRESS_PRECOMPILERS = (
('text/less', 'recess --compile {infile} > {outfile}'),
)
注意:当我这样做时,引导程序仅在无凹槽编译器上编译。也许现在支持其他编译器,但我不会打赌。
基本的 git 策略
要直接从他们的仓库重用引导程序,请使用git submodules。
较低级别的基本策略
假设我们创建了一个custom.less
应该能够重用引导程序的脚本,即。变量、类、mixin 等等。
我们现在有一个问题:编译器必须同时解析引导程序的内容custom.less
。否则,编译器在编译时如何知道引导程序的变量custom.less
?
所以,你可以 import custom.less
in bootstrap.less
,但这会导致你的 repo 之外的文件被修改(记住:bootstrap.less 来自一个子模块)。
解决方案:创建一个master.less
which import both bootstrap/less/bootstrap.less
and custom.less
。不要忘记链接master.less
而不是bootstrap.less
在您的site_base.html
.