无法使用 Web Compiler 2015 编译嵌套的 LESS 文件

Can't compile nested less files with Web Compiler 2015

好吧,当我为 Visual Studio 2015 安装 Web Essentials 2015 时,我很惊讶它不再包含 less 编译器: "Web Essentials 2015 no longer contains features for bundling and minifying of JS, CSS and HTML files as well as compiling LESS"。

在 Visual Studio 2013 之前一切正常。所以我下载了 Web Compiler 2015,因为它是 Mads Kristensen 的新编译器。但是,在将所有需要编译的文件添加到 compilerconfig.json 之后,我在编译时遇到错误,它不再识别我的变量,也不再识别我的混入!

这是我的 site.less:

/* Colors and common variables */
@import "Colors";
@import "Variables";

/* Reseting default values for all internet browsers */
@import "Reset.css";

/*  BootStrap   */
@import "../../../Content/bootstrap/bootstrap.less";

/* Basic mixins */
@import "mixins/Generic_Mixin.less";
@import "mixins/Controls.less";
@import "mixins/Images.less";
@import "mixins/Navigation.less";
@import "mixins/Text.less";

/* Website specific classes */
@import "Controls.less";
@import "Footer.less";
@import "Header.less";
@import "Images.less";
@import "Text.less";
@import "combobox.less";

@import "Sitemaster.less";

这是我的许多错误之一:

variable @font-size-base is undefined on line 49 in file
'C:\Users\(...)\Site.WebApp\App_Themes\Default\Styles\mixins\Variables.less':

拜托,我对这一切一无所知,有人可以为我解答吗?谢谢

我遇到了同样的问题。 Web Compiler 在很多方面都失败了,解决方法很混乱,而且不容易支持。 Web Compiler 的未来版本可能会有用,但我得出的结论是,切换到一个更成熟的更少编译工具是值得的。

这对我有用: 禁用 Web 编译器 工具->扩展和更新->已安装(搜索 Web 编译器)->禁用

然后按照众多教程之一设置 Grunt.js。我使用了 Scott Hanselman 的这个: http://www.hanselman.com/blog/IntroducingGulpGruntBowerAndNpmSupportForVisualStudio.aspx

这是我发现非常有用的另一指南: https://www.orderfactory.com/articles/Bootstrap-LESS-Grunt-VS.html

在我按照这些说明进行操作之前,听起来您基本上和我一样,所以您可能 运行 遇到 TypeScript 编译的另一个问题,Web 编译器默认打开。

如果您收到一堆 "duplicate identifier" 与 lib.core.d.ts 相关的错误,您可能需要禁用自动打字稿编译: 右键单击 Project->Properties->TypeScript Build->取消选中 "Compile on save"

安装 Web 编译器并设置节点工具并分配自动化任务可能会导致 ts 编译器释放到 运行 通过所有 node_modules,寻找要编译的东西。这可能是一团糟。

如果您想在构建时保留 TypeScript 编译,您需要将 tsconfig.json 文件添加到项目的根目录以定义特定的文件路径。没有这个文件,编译器会到处寻找,而你真的不希望这样。我发现禁用它更容易。

这里有更多相关信息:

希望对您有所帮助。