Tenemos un puñado de páginas ASP.net que incluyen más de 50 líneas de javascript específicas para esa página. Nos gustaría minimizar ese javascript durante nuestro proceso de compilación de CruiseControl.

Ya usamos el Compresor YUI para comprimir nuestros archivos completos de JavaScript y CSS. Pero no podemos descubrir cómo hacer el JavaScript en línea.

¿Existe una tarea de MSBuild para pasar páginas asp.net y minificar el javascript?

7
Paul Lemke 22 dic. 2009 a las 19:18

5 respuestas

La mejor respuesta

Hay un blog interesante y un paquete NuGet llamado undleMinifyInlineJsCss para manejar esto

http://weblogs.asp.net/imranbaloch/archive/2012/07/25/bundling-and-minifying-inline-css-and-js.aspx

4
Mosh Feu 16 feb. 2016 a las 13:32

ASP.NET ahora tiene paquetes y minificación integrados a partir de MVC 4 (también está disponible para formularios web y páginas web)

http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

0
HJ05 3 dic. 2012 a las 16:21

Es posible agrupar y minificar javascript en línea. Con los ayudantes de Razor con plantillas, puede crear un método de extensión como el siguiente:

public static MvcHtmlString AddScriptSource(this HtmlHelper helper, Func<dynamic, HelperResult> source, string key)
{
    string scriptSource = source(null).ToHtmlString();

    // Cache scriptSource here

    return MvcHtmlString.Empty;
}

Que usarías así:

@Html.AddScriptSource(@<text>$(document).ready(function() { $('h1').text('The current controller is @ViewContext.RouteData.Values["controller"].ToString()'); });</text>, "test")

Creé un paquete y un minificador alrededor de esto hace unas semanas en:

https://github.com/philpeace/CodePeace.StrawberryJam

0
Phil Peace 3 dic. 2012 a las 15:18

No podrá hacer esto sin una codificación personalizada. La forma más fácil probablemente sería crear un paso PreBuild en el archivo msbuild que escupe a través de todos los archivos .aspx y regexifique todos los javascript. Luego use YUI para minificar el contenido y reemplazar el original por la versión minificada.

También es posible que desee comprobar MbCompression que comprime mucho, incluidas sus páginas asp.net, aunque yo no creo que también minimiza el javascript en línea.

1
Jan Jongboom 22 dic. 2009 a las 16:28

Extraería javascript en métodos y los movería a archivos .js. y llame a las funciones en su lugar con los parámetros relevantes de las páginas. No es un procedimiento complicado y mucho más fácil de mantener (menos código). También puede beneficiarse del almacenamiento en caché del contenido del lado del cliente.


Además: no estoy segura si ayuda, pero el cierre de Google se ve muy bien.

http://code.google.com/closure/

Opciones de compresión: http://code.google.com/closure/compiler /docs/api-tutorial3.html

Disponible como ejecutable Java o servicio web.

2
Serkan 22 dic. 2009 a las 17:19