我目前在一个项目中使用Twitter Bootstrap,包括LESS文件,并编译了一些我们编写的额外LESS代码。
最新版本意味着我们需要覆盖一些Bootstrap LESS变量。其中一个选项是维护修改后的Bootstrap副本,并在每个版本发布时打补丁。
但我注意到可以通过在导入语句之后重新声明变量来覆盖定义在@import LESS文件中的变量。
但是我看到其他网站也使用了这种方法。这肯定比维护供应商分支更容易,并且似乎与less.js很好地配合使用。
希望您能提出任何关于是否这样做是不好的想法!
最新版本意味着我们需要覆盖一些Bootstrap LESS变量。其中一个选项是维护修改后的Bootstrap副本,并在每个版本发布时打补丁。
但我注意到可以通过在导入语句之后重新声明变量来覆盖定义在@import LESS文件中的变量。
E.g.:
@import "twitter-bootstrap/bootstrap.less";
// Restore base font size to pre 2.1.1 defaults
@baseFontSize: 13px;
// Add some custom LESS code here
这是一个不好的做法吗?这是 LESS 编译器工作方式的产物,还是其意图之一?我没有找到太多关于此的信息,但我找到了以下两个参考:
由于 Less 编译器中的一个 bug,您可以通过在初始声明后更改变量来覆盖“常量”值。
http://rubysource.com/how-to-customize-twitter-bootstrap%E2%80%99s-design-in-a-rails-app
和
在 grid.less 导入被声明之后,通过覆盖这三个变量(列和间距)进行自定义。
LESS 网站本身表示变量是“常量”:
请注意,LESS中的变量实际上是“常量”,因为它们只能定义一次。但是我看到其他网站也使用了这种方法。这肯定比维护供应商分支更容易,并且似乎与less.js很好地配合使用。
希望您能提出任何关于是否这样做是不好的想法!