Pergunta

Há algum tempo venho tentando fazer com que a minificação e o empacotamento funcionem em meu projeto MVC3, experimentando vários compressores e métodos diferentes.Finalmente decidi usar o Microsoft Ajax Minifier por meio de uma tarefa msbuild em meu arquivo de projeto.Estou apenas até certo ponto na minha configuração, mas encontrei um obstáculo imediato;quando minifico e combino meus scripts JS em um único arquivo (usando a definição de tarefa abaixo), meu arquivo combinado sempre contém duas cópias minificadas de cada script.

Cortei todas as outras tarefas complicadas do msbuild que adicionei, removi todos os scripts JS, exceto um, e isso ainda está acontecendo.As tags abaixo são a única parte do meu arquivo de projeto que modifiquei 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>

Combined.min.js é criado na raiz do meu projeto web (como esperado), mas contém duas cópias reduzidas do arquivo jquery.js.

Estou usando o Microsoft Visual Studio Ultimate 2012 RC (versão 11.0.50706.0 QRELRC julho de 2012) e o arquivo de referência "AjaxMinTask.dll" é a versão mais recente (4.59.4576.13505) de aqui.

Agora, aqui está a coisa mais estranha.Além disso, criei projetos MVC3 completamente novos no VS 2010 e no VS 2012 e copiei e colei as linhas acima em seus arquivos de projeto - alterando apenas o caminho para AjaxMinTask.dll (para usar o mesmo que o projeto quebrado) e o caminho para o arquivo JQuery (\scripts\jquery..js) e eles funcionam perfeitamente bem.

Infelizmente não consigo colar o arquivo do projeto porque é muito longo para estouro de pilha, então compactei-o com o arquivo jquery original que estou tentando minificar/combinar, o arquivo "minificado" resultante e os assemblies AjaxMin que eu estou usando:

[URL redigido]

Alternativamente, estou muito aberto a quaisquer outros métodos sugeridos que me permitirão reduzir/combinar quando eu construir no modo de lançamento no Visual Studio 2012, usando .Net 4.0 e MVC 3.

Foi útil?

Solução

Bem, aqui está uma pegadinha estranha...Consegui consertar isso (depois de dias de confusão!) alterando o diretório "js" para outro nome ("javascript"):

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

ou removendo o "**\" do início do caminho:

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

Eu suspeito que isso seja algum tipo de bug.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top