Asp.net
捆綁中文件的排序 - 已知的庫是什麼?
在 Bundling and Minification 中,我知道 bundler 會圍繞某些已知的文件類型移動——這樣 jQuery 之類的東西就會被移到前面。
預設情況下,當文件由 ASP.NET 捆綁時,它們首先按字母順序排序,就像它們在解決方案資源管理器中顯示的一樣。然後它們會自動移動,以便在載入已知庫及其自定義擴展(如 jQuery、MooTools 和 Dojo)之前先載入它們。 -來源
但是在閱讀了這個最近的問題後:ASP.NET MVC - Bundle Config order,它顯示了即使使用者指定了載入順序,捆綁器如何移動文件,我意識到我不知道這些已知文件類型是什麼,或它們將被列出的順序。
我從來沒有見過一個解釋這個的列表,在搜尋中,我什麼也沒想到。
是否有一個列表顯示已知文件類型是什麼以及它們將呈現的順序?我認為這是 ASP.NET 團隊應該為開發人員提供的資源。
它在 BundleCollection.AddDefaultFileOrderings 的文件註釋中:
/// <summary> /// Add default file ordering for common popuular script and style libraries. /// </summary> /// <param name="list">A collection of <see cref="BundleFileSetOrdering"/> objects to populate with default values.</param> /// <remarks> /// The purpose for applying these default file ordering values is to ensure that common libraries such as jquery are always located /// at or close to the top within a bundle. These values can be all removed with <see cref="ResetAll"/>. /// /// The default ordering values are as follows: /// <list type="bullet"> /// <item><description>reset.css</description></item> /// <item><description>normalize.css</description></item> /// <item><description>jquery.js</description></item> /// <item><description>jquery-min.js</description></item> /// <item><description>jquery-*</description></item> /// <item><description>jquery-ui*</description></item> /// <item><description>jquery.ui*</description></item> /// <item><description>jquery.unobtrusive*</description></item> /// <item><description>jquery.validate*</description></item> /// <item><description>modernizr-*</description></item> /// <item><description>dojo.*</description></item> /// <item><description>mootools-core*</description></item> /// <item><description>mootools-*</description></item> /// <item><description>prototype.js</description></item> /// <item><description>prototype-*</description></item> /// <item><description>scriptaculous-*</description></item> /// <item><description>ext.js</description></item> /// <item><description>ext-*</description></item> /// </list> /// </remarks> public static void AddDefaultFileOrderings(IList<BundleFileSetOrdering> list) { if (list == null) { throw new ArgumentNullException("list"); } BundleFileSetOrdering css = new BundleFileSetOrdering("css"); css.Files.Add("reset.css"); css.Files.Add("normalize.css"); list.Add(css); BundleFileSetOrdering jquery = new BundleFileSetOrdering("jquery"); jquery.Files.Add("jquery.js"); jquery.Files.Add("jquery-min.js"); jquery.Files.Add("jquery-*"); jquery.Files.Add("jquery-ui*"); jquery.Files.Add("jquery.ui*"); jquery.Files.Add("jquery.unobtrusive*"); jquery.Files.Add("jquery.validate*"); list.Add(jquery); BundleFileSetOrdering mod = new BundleFileSetOrdering("modernizr"); mod.Files.Add("modernizr-*"); list.Add(mod); BundleFileSetOrdering dojo = new BundleFileSetOrdering("dojo"); dojo.Files.Add("dojo.*"); list.Add(dojo); BundleFileSetOrdering moo = new BundleFileSetOrdering("moo"); moo.Files.Add("mootools-core*"); moo.Files.Add("mootools-*"); list.Add(moo); BundleFileSetOrdering proto = new BundleFileSetOrdering("prototype"); proto.Files.Add("prototype.js"); proto.Files.Add("prototype-*"); proto.Files.Add("scriptaculous-*"); list.Add(proto); BundleFileSetOrdering ext = new BundleFileSetOrdering("ext"); ext.Files.Add("ext.js"); ext.Files.Add("ext-*"); list.Add(ext); }