我想bower_components文件夾被放棄的原因,現在使用wwwroot/lib是因爲無論是在開發或生產靜態文件需要住在wwwroot下方,否則在每次編輯文件之後,您需要再次運行taskrunner來複制wwwroot下面的文件。如果文件的開發版和生產版都位於wwwroot下方的某個位置,那麼這是一個更高效的工作流程。這樣,您可以編輯和刷新頁面,而不是編輯運行taskrunner,然後刷新頁面。
我建議在創建文件的縮小/處理生產版本時將grunt過程文件放入不同的文件夾,如wwwroot/js。
然後wwwroot/lib文件夾甚至可以從發佈中排除,因爲只有dev腳本版本的庫腳本才能在那裏生存。
我想我自己的不是涼亭組件的自定義腳本可能不應該在wwwroot/lib下生活,所以也許我把unrealified下的wwwroot/dev和處理所有生產的東西在wwwroot/js下,這樣在生產中我只部署具有生產版本縮小/組合文件的wwwroot/js文件夾。所以基本上我們用這種方式製作自己的捆綁包。
新的環境標籤和和腳本taghelper使其能夠輕鬆地指向用於開發和生產各種不同的文件位置,可見在這個例子:
<environment names="Development">
<script src="~/lib/jquery-validation/jquery.validate.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
</environment>
<environment names="Staging,Production">
<script src="//ajax.aspnetcdn.com/ajax/jquery.validation/1.11.1/jquery.validate.min.js"
asp-fallback-src="~/js/lib/jquery-validation/jquery.validate.js"
asp-fallback-test="window.jquery && window.jquery.validator">
</script>
<script src="//ajax.aspnetcdn.com/ajax/mvc/5.2.3/jquery.validate.unobtrusive.min.js"
asp-fallback-src="~/js/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"
asp-fallback-test="window.jquery && window.jquery.validator && window.jquery.validator.unobtrusive">
</script>
</environment>
所以,你可以很方便的方法在使用CDN生產。請注意,對於非cdn文件,您不能指向wwwroot以外的任何位置或其下的某個文件夾,因此wwwroot之外的bower_components文件夾中的文件不是指向腳本的位置,因此沒有必要將文件放在那裏。
將腳本鏈接到我的自定義腳本的開發版本時,我喜歡使用新的taghelper屬性asp-append-version =「true」,它將文件內容的散列追加到URL,以確保先前的瀏覽器緩存任何時候文件被編輯或改變都會被忽略。這種情況發生時不需要運行taskrunner,我只需編輯和刷新頁面。
總之,使用wwwroot下面的所有腳本比在其他地方使用它們需要更好的工作流程,並且需要在每次編輯之後運行taskrunner來移動它們。如果你不想從wwwroot/lib下面部署所有額外的東西,那麼你需要把你想要的東西與taskrunner一起處理到另一個文件夾中,就像你使用bower_components文件夾中的wwwroot之外的東西一樣在早期貝塔斯。並排除wwwroot/lib從您的web應用程序的project.json中的publishExclude發佈。
我寧願用一個指向'.bowerrc'文件'的wwwroot/lib'與鮑爾的'exportsOverride'功能沿除必須手動管理不同廠商的資產與多種一飲而盡/咕嚕任務,尤其是當一些廠商跟進不同的或不標準的dist結構。 – sgbj
Tnx用於'exportsOverride'的洞察。雖然它似乎不工作的最新測試版:http://stackoverflow.com/questions/32678101/bower-exportsoverride-doesnt-work-on-asp-net-5-beta7 –
好奇,什麼是'exportsOverride'?它是涼亭的內置功能嗎?我問這是因爲我以前使用'main-bower-files'來實現類似的行爲。 –