Web Essentials v2.8 LESS导入错误

9
为了更好地组织,我有一个主要的.less文件,使用@import语法导入其他的.less文件。为了使Web Essentials预览窗口工作,每个导入variables.less文件的.less文件顶部也要加上@import-once。
这个解决方案在升级到Web Essentials 2.8之前非常有效。现在我无法导入任何具有@import或@import-once声明的.less文件。我的主要.less文件不再编译。
如果我删除@import-once语句,预览窗口就毫无用处,因为我不能在不导入变量文件的情况下看到编译后的CSS。
我还有一个情况,将一个.less文件导入到规则集中,在lesscss.org网站的Importing into ruleset部分中定义。自从升级到v2.8后,这也不再起效了。
有人遇到过这些问题或有解决方法吗?
谢谢。
2个回答

9
这似乎是WebEssentials最新版本的一个Less 1.4.0中的新特性引起的问题,如Anwar所述。请查看Less的更改日志:

1.4.0 Beta 1&2(2013-03-07)

  • 导入的默认行为是每个文件只导入一次。 @import-once已被删除。

要么

更新您的文件以使用新语法(从导入中删除-once

或者

要使用旧版本的引擎,请下载以前的(2.7)版本并在确定问题已经解决之前不进行更新。

要么

或者您可以配置您的Visual Studio,查看来自Web Essentials的夜间构建源以下载最新版本(注意,夜间构建可能包含其他错误或不时停止工作)。要这样做,请转到“工具”->“选项”->“扩展和更新”,然后添加源:http://vswebessentials.com/nightly/feed.ashx 这似乎添加了一个解决方法,使其也能与旧语法一起使用。 Add WebEssentials Nightly feed

这是一个链接,如果有人需要的话,可以安装2.7版本 http://vswebessentials.com/nightly/webessentials2012-2.7.vsix - Phil Hale
我收到一个错误提示,说“扩展清单无效”。有其他人成功打开这个文件吗? - Evan Portwood
显然我的 .vsix 文件关联已经损坏了。我可以通过运行“<VSInstallPath>\Common7\IDE\vsixinstaller.exe <VSIXPath>”来安装扩展程序。 - Evan Portwood

3
在Less v1.4.0中,@import-once已被删除,默认情况下@import仅导入一次。这意味着以下内容:
@import “file.less”; @import “file.less”;
第二个文件将被忽略。
我认为这可能会导致导入语句出现问题。

我同意v1.4.0改变了@imports的工作方式,但Web Essentials的问题似乎是一个less文件不能导入另一个导入其他less文件的less文件。例如,main.less无法导入foo.less,而foo.less又导入了mixins.less和variables.less。我想要导入mixins和variables的原因是,在使用less文件时,我可以使用Web Essentials预览窗口预览编译后的css。如果我不导入它们,预览窗口就毫无用处,因为它找不到引用的变量和mixin。 - Evan Portwood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接