【发布时间】:2015-09-23 08:40:45
【问题描述】:
我们在项目中成功使用了 dotLess,我们有很多 LESS 文件,并使用 LESS 本身通过 @import 命令将不同的组件文件组合在一起,效果很好。示例:
@import 'common/_type.less';
此外,我们使用@import(引用)语法来允许 Visual Studio 的 Web Essentials 插件正确加载智能感知等的引用。示例:
@import (reference) '../components/_animations.less'; // reference only
不幸的是,当包含这些(引用)语句时,dotLess 似乎失败了,导致 less 处理程序返回一个空文件,并且没有可跟踪的异常。
有什么想法吗?
更多信息:
所以我们做了很多主题化,使用变量文件来建立颜色等,我们遍历所有的 less 文件。所以我们在浏览器中访问的顶级 less 文件可能看起来像这样(比如 theme-blue.less)
@import '_variables-default.less'
@import '_variables-blue.less'
@import '_master.less'
_master.less 然后包含进一步的导入以防止跨主题重复:
@import 'mixins/_vendor-prefixes.less';
@import 'mixins/_clearfix.less';
... etc
那么我们最终得到的是包含引用语句的更少文件本身。
所以 clearfix.less 可能会在 vendor-prefixes.less 中引用 mixins,这就是 @import(引用)对智能感知有用的地方:
@import (reference) '../mixins/_vendor-prefixes.less'; // reference only
【问题讨论】:
-
您的用例似乎很有趣——您是否在其他地方进行标准导入,然后在实际文件中进行参考导入以获取 IntelliSense?我问是因为我正在研究有问题的功能。 :-)
-
我从来没有想过这样做——你知道
@import (reference)实际上是“打算”使用来自@imported 文件的混合和变量而不从该文件输出任何未使用的规则吗?无论如何,从逻辑上讲,如果文件已经通过常规导入导入,则引用导入不应该做任何事情,所以在你的情况下一切都很好。我将尝试确保以一种不会在即将到来的实施中导致额外性能损失的方式来处理它。 :-) -
是的 - 这正是我们使用它的原因,它是一种很好的“文档”,用于记录每个 less 文件具有的依赖关系(有点像 using 语句)。但关键是那些(参考)语句允许 Web Essentials 验证整个 less 文件,并提供智能感知和导航到其他文件,这是巨大的。感谢您的帮助!
标签: asp.net web-essentials dotless