Domanda

Ho tentato di ottenere minificazione e raggrupparsi a lavorare sul mio progetto MVC3 per un po 'di tempo, provando un bel po' di diversi compressori e metodi. Ho finalmente risolto l'utilizzo dell'utilizzo del minifier Microsoft Ajax tramite un'attività MSBuild nel mio file di progetto. Sono solo così lontano dalla mia configurazione, ma ho colpito un ostacolo ostacolo; Quando minifingo e combinisco i miei script JS in un singolo file (utilizzando la definizione dell'attività seguente), il mio file combinato contiene sempre due copie minificate di ogni script.

Ho tagliato tutte le altre complicate compiti di msbuild che ho aggiunto, rimosso tutto tranne uno script JS, e sta ancora succedendo. I tag qui sotto sono l'unica parte del mio file di progetto che ho modificato 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>
.

Combinate.min.js viene creato nella radice del mio progetto Web (come previsto), ma contiene due copie minificate del file JQuery.js.

Sto usando Microsoft Visual Studio Ultimate 2012 RC (versione 11.0.0.5070.0 qrelrc luglio 2012) e i riferimenti file "ajaxmintask.dll" è l'ultima versione (4.59.4576.13505) da qui .

Ora, ecco la cosa più strana. Inoltre, ho creato progetti MVC3 completamente nuovi sia in VS 2010 e vs 2012, e copiati e incollati le linee di cui sopra nei loro file di progetto, cambiando solo il percorso su Ajaxmintask.dll (per utilizzare lo stesso del progetto rotto) e il Percorso per il file jquery (\ script \ jquery..js) e funzionano perfettamente fine .

Purtroppo non riesco a incollare il file del progetto perché è troppo lungo per lo stack overflow, quindi l'ho cercato con il file jquery originale che sto cercando di minificare / combinare, il file "minificato" risultante e il file "minificato". Assemblee Ajaxmin Sto usando:

[URL redatto]

In alternativa, sono molto aperto a qualsiasi altro metodo suggerito che mi consentirà di minificare / combinare quando costruisco in modalità di rilascio in Visual Studio 2012, utilizzando .NET 4.0 e MVC 3.

È stato utile?

Soluzione

Beh, ecco uno strano Gotcha ... Sono riuscito a risolvere questo (dopo giorni di fidatando!) Cambiando la directory "JS" a un altro nome ("JavaScript"):

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

o rimuovendo il "** \" dall'inizio del percorso:

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

I Sospetto che questo sia un bug di qualche tipo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top