2016-12-26 51 views
0

我最近從Visual Studio 2013切換到Visual Studio 2015,以在MVC中開發我的Web應用程序。 我們使用LESS和JS文件編譯爲這兩種文件類型的Minified版本。使用Bundler和Minifier編譯保存CSS/JS文件

現在在VS2013中有一個功能,在LESS文件中用於對.LSS文件進行的任何更改時自動編譯爲.CSS文件。對於更新了.min.js文件的JS文件也是如此。對JS文件的任何改變。

因此,現在對於VS2015,我知道有一些新的獨立擴展,即「Web編譯器」和「Bundler和Minifier」,我也對其進行了全面研究,但我仍然無法使用它們如果.LESS或.JS文件相應更改,則更新縮小版本。

我知道有這些任務運行程序稱爲Grunt和Gulp可用於VS2015,但我需要知道如何才能實現此編譯保存使用這些工具。

回答

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/@[email protected](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文件,這是一個巨大的副作用。

希望這會有所幫助。