Asp.net

捆綁中文件的排序 - 已知的庫是什麼?

  • October 19, 2013

在 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);
   }

引用自:https://stackoverflow.com/questions/19325487