我真的不知道如何调试这个,也许有人有一个主意。
我在application.css.less
中导入了许多LESS文件。我们使用Bootstrap,并且我们希望在我们自己的样式中使用其中定义的变量,因此我们不能在清单中要求LESS文件(因为必需文件似乎不会将其变量公开给其他必需文件)。
一切都工作得很好,除了少数LESS文件-当编辑时-不会触发重新编译CSS!哪个做,哪个不做似乎是随机的,只有6个不做(相比之下,总共有25个不做)。当我在清单中需要它们中的一个时,它会成功地导致重新编译-如果我@import它,它不会。
你知道怎么调试这个吗?如果我重命名其中一个(例如从time_records.less
到time_records2.less
),它会在更改后成功触发重新编译…所以它必须对这6个特定文件的名称做些什么:
- calendars.less
- contacts.less
- folders.less
- handout.css.less
- print.css.less
- time_records.css.less
非常感谢任何帮助。谢谢你。
最新版本的less-rails实现了Import Hooks,应该可以解决您的问题。我意识到这是一个迟来的答案,而且当时可能还不存在。
进口钩
对.less文件的任何@import都会自动将该文件声明为对导入它的文件的链轮依赖。这意味着您可以编辑导入的框架文件,并在开发期间查看反映在父框架中的更改。所以这:
@import "frameworks/bootstrap/mixins";
#leftnav { .border-radius(5px); }
最终会像你做了下面的事情一样:
/*
*= depend_on "frameworks/bootstrap/mixins.less"
*/
@import "frameworks/bootstrap/mixins";
#leftnav { .border-radius(5px); }
依赖指令
depend_on path声明一个对给定路径的依赖,而不把它包含在bundle中。