1

对不起,可怕的问题措辞,让我解释一下。

对于我正在处理的项目,我想管理服务器上我的 LESS 文件的各种依赖项。由于项目的结构方式(不同的组件以不同的方式符号链接),仅使用 @import 来构建依赖项等会受到更多限制。

理想情况下,我只想在该部分中吐出所需的 LESS 文件列表,例如:

<link rel='stylesheet/less' href='/path/to/some/file.less' type='text/css' media='all' />
<link rel='stylesheet/less' href='/path/to/some/other-file.less' type='text/css' media='all' />

然后,例如,如果在 file.less 中定义了变量或 mixin,我希望能够在 other-file.less 中使用它。

据我所知,这是行不通的。每个 LESS 文件似乎都存在于其自己的范围内,而其中一个文件中的变量等在另一个文件中不可用。

这个对吗?范围是否完全限于单个文件和其中的任何 @imports?我有理由确定它是,但不完全是。

目前,我的解决方法比我想的要复杂:我正在构建依赖项服务器端,然后将它们快速组合成一个巨大的、单一的 development.less 文件。(请注意,出于生产目的,我有一个编译和缩小我的 less 的构建过程,以便我直接提供 CSS)。

我已经查看了 LESS 源代码中的 browser.js 以获取线索,但我想我会先在这里询问这是否可能甚至是可取的。我对这种行为有点惊讶,因为这不是多个 javascript 文件和内联代码的工作方式。

4

1 回答 1

1

为什么它不起作用

每个<link>LESS 文件都会对该文件进行预处理并将其解析为纯 CSS 输出。html 本身的“范围”中没有任何变量或任何东西,因此第二个<link>无法使用任何东西。这就是为什么一个人无法阅读另一个人。

可能的帮助

使用 LESS 1.5 an@import可以仅作为参考(因此不会将直接输出编译到文件中)。所以你other-file.less可以这样做:

@import (reference) file.less;

获得它所需的依赖关系。

于 2013-11-05T00:45:34.820 回答