使用Bundler和Minifier在Save上编译CSS / JS文件

时间:2016-12-26 13:45:33

标签: visual-studio-2015 bundler minify web-compiler

我最近从Visual Studio 2013切换到Visual Studio 2015,用于在MVC中开发我的Web应用程序。 我们使用LESS和JS文件编译为这两种文件类型的Minified版本。

现在在VS2013中有一个功能,LESS文件用于在对.LESS文件所做的任何更改时自动编译为.CSS文件。在任何更新的.min.js文件的JS文件上都会发生同样的情况。更改为JS文件。

所以现在对于VS2015我知道有新的独立扩展来做这个,即#34; Web编译器"和" Bundler和Minifier"我已经做了全面的研究,但如果.LESS或.JS文件相应更改,我仍然无法使用它们更新缩小版本。

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

1 个答案:

答案 0 :(得分:0)

回答1 通常可以通过删除%localappdata%\temp\WebCompiler???文件夹来解决此问题。

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

不适合所有人,但似乎适用于很多人。

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

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

@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")

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

由于发布Web项目涉及构建它,它将编译.js文件,您可以确信发布的已编译和缩小的文件是最新的。

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

希望这有帮助。