문제

나는 MINI 화를 받고 MVC3 프로젝트에서 일하고 번들링하려고 시도하고 꽤 많은 다른 압축기와 방법을 시도하고 있습니다. 나는 최종적으로 프로젝트 파일에서 MSBuild 태스크를 통해 Microsoft Ajax Minifier를 사용하여 마침내 정산했습니다. 나는 단지 나의 구성에 대해서만 멀리 떨어져 있지만, 즉각적인 걸림돌을 쳤다. My JS 스크립트를 단일 파일로 분사하고 결합 할 때 (아래 작업 정의를 사용하여) 결합 된 파일에는 항상 각 스크립트의 두 개의 미세한 복사본이 포함되어 있습니다.

한 JS 스크립트를 제외한 모든 다른 모든 복잡한 MSBuild 작업을 잘라내 며 아직도 일어나고 있습니다. 아래 태그는 수동으로 수정 한 내 프로젝트 파일의 유일한 부분입니다.

<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는 웹 프로젝트의 루트에 생성되지만 jquery.js 파일의 두 개의 미세 복사본이 포함되어 있습니다.

Microsoft Visual Studio Ultimate 2012 RC (버전 11.0.50706.0 QRELRC 7 월, 2012)를 사용하고 "ajaxmintask.dll"파일은 여기 .

자, 가장 이상한 것이 있습니다. 또한 VS 2010 및 VS 2012에서 완전히 새로운 MVC3 프로젝트를 만들었고 위의 행을 프로젝트 파일에 복사하고 붙여 넣었습니다. ajaxmintask.dll의 경로 만 변경하고 (깨진 프로젝트와 동일한 사용) 및 jQuery 파일 (\ scripts \ jquery..js) 및 경로는 완벽하게 잘 작동합니다

불행히도 스택 오버플로가 너무 길면 프로젝트 파일을 붙여 넣을 수 없으므로 원래의 jQuery 파일로 압축 해제 / 결합하여 결과 "미크링"파일 및 Ajaxmin Asmblyies가 사용하고 있습니다 :

[URL Redacted]

는 .NET 4.0 및 MVC 3을 사용하여 Visual Studio 2012에서 릴리스 모드에서 릴리스 모드에서 빌드 할 때 Minify / Combine을 사용할 수있게 해주는 다른 제안 된 방법에 대해 매우 열려 있습니다.

도움이 되었습니까?

해결책

여기에 이상한 gotcha가 있습니다 ... "JS"디렉토리를 다른 이름으로 변경하여 "Faffing of faffing 후!) :

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

경로의 시작 부분에서 "** \"를 제거하십시오 :

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

이것은 이것이 정렬의 버그라는 의심됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top