Visual studio 2015 使用Bundler和Minifier在保存时编译CSS/JS文件

Visual studio 2015 使用Bundler和Minifier在保存时编译CSS/JS文件,visual-studio-2015,bundler,minify,web-compiler,Visual Studio 2015,Bundler,Minify,Web Compiler,我最近从Visual Studio 2013转到Visual Studio 2015,用MVC开发我的Web应用程序。 我们正在使用LESS和JS文件来编译这两种文件类型的精简版本 现在在VS2013中有一个功能,在LESS文件中,当对.LESS文件进行任何更改时,该文件会自动编译为.CSS文件。在JS文件中,当对JS文件进行任何更改时,会更新.min.JS文件,这同样会发生在JS文件上 因此,现在对于VS2015,我知道有一些新的独立扩展可以做到这一点,即“Web编译器”和“Bundler a

我最近从Visual Studio 2013转到Visual Studio 2015,用MVC开发我的Web应用程序。 我们正在使用LESS和JS文件来编译这两种文件类型的精简版本

现在在VS2013中有一个功能,在LESS文件中,当对.LESS文件进行任何更改时,该文件会自动编译为.CSS文件。在JS文件中,当对JS文件进行任何更改时,会更新.min.JS文件,这同样会发生在JS文件上

因此,现在对于VS2015,我知道有一些新的独立扩展可以做到这一点,即“Web编译器”和“Bundler and Minifier”,我也对它们进行了全面的研究,但如果.LESS或.JS文件发生相应的更改,我仍然无法使用它们来更新缩小的版本

我知道VS2015中有名为Grunt和Gulp的任务运行程序,但我需要知道如何使用这些工具在保存时实现此编译。

答案1 这通常可以通过删除
%localappdata%\temp\WebCompiler???
文件夹来解决

有时需要重新启动VS,有时不需要

不是对每个人都有效,但似乎对很多人有效

答案2 对于那些感兴趣的人,我找到了另一个答案,这似乎提供了额外的好处

如果将Razor视图添加到项目中(我将其命名为
JsHelper.cshtml
,并将其添加到
\Views\Shared
),并使用以下内容(添加额外的换行符以使其适合SO宽度)

在VisualStudio中运行网站时,将使用Javascript文件的未编译版本。在其他任何地方(如在生产服务器上)运行时,将使用
.es5.min.js
版本

由于发布web项目需要构建它,它将编译.js文件,因此您可以确信发布的已编译和缩小的文件是最新的

这样做的另一个好处是,在浏览器中调试脚本时,您可以访问
.js
文件的完整版本,而不是直接引用它们时得到的编译和缩小版本。在最新版本的Web编译器中发生的另一个突破性变化是,它们在编译时不再生成
.map.js
文件,这是一个巨大的副作用

希望这有帮助

@model string
@{
  string ext = HttpContext.Current != null
               && HttpContext.Current.Request.Url.Host.Contains("localhost")
    ? ""
    : ".es5.min";
}
<script src="/Scripts/@Model@(ext).js" type="text/javascript"></script>
<script src="/Scripts/General.es5.min.js" type="text/javascript"></script>
@Html.Partial("~/Views/Shared/JsHelper.cshtml", "General")