visual tutorial studio net framework asp c# asp.net-mvc bundle bundling-and-minification

tutorial - c# asp net



¿El agrupador de ASP.net minimiza automáticamente los archivos? (3)

Estoy usando ASP.net MVC 4. Al igual que los estados de la pregunta, si pongo un montón de archivos JS (o CSS, en realidad) en un paquete, ¿se reducirá automáticamente ? Por ejemplo, si mi paquete lee:

bundles.Add(new ScriptBundle("~/bundles/exampleBundle").Include( "~/Scripts/jquery-masked.js" "~/Scripts/jquery.idletimer.js" ));

O debería incluir los archivos minificados inicialmente:

bundles.Add(new ScriptBundle("~/bundles/exampleBundle").Include( "~/Scripts/jquery-masked.min.js" "~/Scripts/jquery.idletimer.min.js" ));

??

Edición: Ahora me pregunto si agrupar los archivos .min en su lugar agrega alguna optimización. ¿Aumentará el rendimiento, incluidos los archivos .min en el paquete en lugar de los archivos básicos? (Tal vez la "función minificadora" lleva algún tiempo?)


El agrupador Asp.Net agrupa todos los scripts en el mismo paquete en un solo archivo, enumerados en el orden en que están definidos en el paquete. Este único archivo se minimiza y se entrega al cliente.

Si incluye las versiones normal y mínima de una secuencia de comandos en su directorio de secuencias de comandos, el agrupador desplegará automáticamente la secuencia de comandos completa durante las sesiones de depuración y la versión mínima durante la producción. Debe evitar consultar las versiones mínimas de sus scripts en la configuración del paquete, a menos que desee que la versión minificada se despliegue en sus sesiones de depuración.


Estos son dos términos diferentes llamados agrupación y minificación.
Reducción : se trata de versiones reducidas de los archivos JS donde comprime el contenido cambiando el nombre de las variables.
Empaquetado : es una cosa totalmente diferente. Para reducir los viajes de ida y vuelta a la red, es mejor combinar todo en un archivo y descargarlo en el cliente en una sola solicitud.

Por lo tanto, puede empaquetar la versión reducida de JS para obtener este beneficio.


No tiene que incluir archivos minificados, eso se hace automáticamente por el motor de paquete. De hecho, recuerdo que la inclusión de archivos minificados causó problemas (tal vez esto se haya corregido en la última versión de mvc)

Puede pensar que esto no funciona, ya que las optimizaciones (agrupación y minimización) solo se realizan cuando debug=false en web.config.

<system.web> <compilation debug="false" /> </system.web>

Hay una manera de forzar optimizaciones incluso cuando debug = true usando BundleTable.EnableOptimizations . Aquí tienes un ejemplo.

public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js")); BundleTable.EnableOptimizations = true; }