online minificar desminificar comprimir codigo javascript msbuild continuous-integration build-automation minify

javascript - desminificar - minificar php



Minificación de guiones e integración continua con MSBuild (3)

En un proyecto reciente en el que he estado trabajando en C # / ASP.NET, tengo algunos archivos JavaScript bastante complicados y algunas hojas de estilo ingeniosas. A medida que estos recursos de script aumentan de tamaño, es aconsejable minimizar los recursos y mantener sus páginas web lo más claras posible, por supuesto. Conozco a muchos desarrolladores que alimentan manualmente sus recursos de JavaScript en compresores después de la depuración y luego implementan sus aplicaciones.

Cuando se trata de control de fuente y compilaciones automatizadas en el mundo satisfactorio de la integración continua (gracias CruiseControl.NET ); la compresión de la mano simplemente no funcionará. La única forma de mantener el control de la fuente y ofrecer recursos comprimidos es mantener la fuente JS / CSS y sus hermanos minificados en una estructura de directorios separada. Luego registre solo un conjunto de recursos o el otro en código subyacente. Sin embargo, si un desarrollador hace un cambio a la fuente JS / CSS y luego no puede volver a compactarlo y verificar ambas versiones, entonces su línea de código ahora no está sincronizada. Por no mencionar poco elegante.

Estoy pensando que sería bueno escribir un ejecutable personalizado (si aún no existe) para el bloque de tareas CC.NET que encontraría y comprimiría todos los recursos de JavaScript y CSS en el directorio de destino después de la acción de compilación, pero antes del asp .net publicar en destino De esta forma, los desarrolladores solo trabajarían en fuentes JS y CSS y los usuarios solo obtendrían los recursos minificados.

¿Hay alguna aplicación que ya realice esta tarea y, de no ser así, qué tipo de recurso debería buscar instalar en el servidor de compilación para ejecutar CC.NET?

(La pregunta más cercana que pude encontrar aquí requirió NAnt, que no es una opción en mi caso).

EDITAR: Dave Ward ahora tiene un excelente artículo sobre cómo minimizar automáticamente en Visual Studio en su sitio.



El proyecto MSBuildCommunityTasks tiene algunas tareas de MSBuild que pueden hacer lo que está buscando, incluidas Merge y JSCompress.

Puede agregarlos a su proyecto MSBuild en el objetivo AfterBuild para permitir que el proyecto realice esta acción cada vez que se construya el proyecto y que nada quede fuera de sincronización. Su aplicación web podría hacer referencia a la versión compacta para ejecutar, pero los desarrolladores editarían las versiones completas.

No se necesitaría nada más en el servidor, excepto el ensamblado de tareas de la comunidad de MSBuild. Puede colocar este ensamblaje en su propio árbol de origen y hacer referencia desde allí y su compilación CI debe obtener ese ensamblaje y todo lo que necesita cuando se construye.


No es una respuesta perfecta, pero si está utilizando MVC4 lo han incorporado como una nueva característica. Cuando se ejecuta una configuración de depuración, genera archivos individuales con comentarios, pero cuando se cambia a Release, se agrupan, minimizan y cambian automáticamente las referencias de página a los archivos minificados. Puede configurar paquetes separados para, por ejemplo, jquery y su propio js. Esto funciona con archivos CSS y JS.

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

Si MVC4 no funciona para usted, también puede encontrar paquetes en Nuget que pueden ayudar, como este:

https://www.nuget.org/packages?q=minify