Pregunta

He estado intentando obtener una minificación y agrupación que trabaja en mi proyecto MVC3 durante algún tiempo, probando algunos compresores y métodos diferentes. Finalmente, he establecido en el uso de Microsoft AJAX Minifier a través de una tarea MSBUILD en mi archivo de proyecto. Solo estoy tan lejos en mi configuración, pero he golpeado un obstáculo inmediato; Cuando minifico y combina mis scripts JS en un solo archivo (usando la definición de tareas a continuación), mi archivo combinado siempre contiene dos copias miniñas de cada script.

He recortado todas las demás tareas complicadas de MsBuild que agregó, eliminé todos menos un script JS, y aún está sucediendo. Las siguientes etiquetas son la única parte de mi archivo de proyecto que he modificado manualmente:

<UsingTask TaskName="AjaxMin" AssemblyFile="$(MSBuildProjectDirectory)\..\_Build\AjaxMinTask.dll" />
<Target Name="AfterBuild">
    <ItemGroup>
        <JsFiles Include="**\res\js\libs\jquery.js" />
    </ItemGroup>
    <AjaxMin Switches="-global:jQuery,$" JsSourceFiles="@(JsFiles)" JsCombinedFileName="Combined.min.js" />
</Target>

combinados.min.js se crea en la raíz de mi proyecto web (como se esperaba), pero contiene dos copias miniizadas del archivo jquery.js.

Estoy usando Microsoft Visual Studio Ultimate 2012 RC (versión 11.0.50706.0 QRelrc Julio, 2012) y la referencia "AJAXMINTASK.DLL" es la última versión (4.59.4576.13505) de aquí .

Ahora, aquí está la cosa más extraña. Además, he creado nuevos proyectos de MVC3 en VS 2010 y VS 2012, y copiados y pegados a las líneas anteriores en sus archivos de proyecto, solo cambiando la ruta a AJAXMINTASK.dll (para usar el mismo que el proyecto roto) y el Ruta al archivo jquery (\ scripts \ jquery..js), y trabajan perfectamente fino .

Desafortunadamente, no puedo pegar el archivo del proyecto, ya que es demasiado largo para el desbordamiento de la pila, por lo que me lo he cerrado con el archivo jquery original que estoy tratando de minularizar / combinar, el archivo "minificado" resultante y el Asambleas AJAXMIN Estoy usando:

[url redactado]

Alternativamente, estoy muy abierto a cualquier otro método sugerido que me permita minifique / combine cuando construyo en modo de liberación en Visual Studio 2012, usando .NET 4.0 y MVC 3.

¿Fue útil?

Solución

Bueno, aquí hay una gotcha extraña ... ¡He logrado arreglar esto (después de los días de Faffing!) Cambiando el directorio "JS" a otro nombre ("Javascript"):

<JsFiles Include="**\res\javascript\libs\jquery.js" />

o eliminando el "** \" desde el principio de la ruta:

<JsFiles Include="res\js\libs\jquery.js" />

Sospecho que este es un error de algún tipo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top