0

私はajaxminを使用して、すべての JS ファイルを縮小しています。すべてが完璧に機能しますが、出力ファイルの生成方法にはほとんど問題がありません。

現在、JS ファイルはそのパスの横に縮小されています。たとえば、元のパスがincludes/js/test.jsの場合、 includes/js/test.min.jsで縮小されます

すべてのjsファイルを元の場所とは別の場所で縮小したい。たとえば、私のすべての js ファイルはincludes/js/JSFILESHEREの下にあり、これらの js ファイルをincludes/minifiedjs/MINIFIEDJSFILESHEREで縮小したいと考えていました。

以下のコードを使用しています。

    <Import Project="$(MSBuildExtensionsPath)\Microsoft\MicrosoftAjax\AjaxMin.tasks" />
    <Target Name="AfterBuild">
        <ItemGroup>
            <JS Include="\js\*.js" Exclude="**\*.min.js;" />
        </ItemGroup>  
    <AjaxMin JsSourceFiles="@(JS)" JsSourceExtensionPattern="\js\.js$" JsTargetExtension=".min.js"/>
    </Target>

助けてください。

4

1 に答える 1

1

この質問への返信が少し遅れたことをお詫びします。

これが私のプロジェクトに使用したソリューションです-

<Target Name="AfterBuild">
<PropertyGroup>
  <DestinationPath>$(MSBuildProjectDirectory)\build-publish</DestinationPath>
</PropertyGroup>
<ItemGroup>
  <JS Include="Scripts\app\**\*.js" Exclude="**\*.min.js;Scripts\*.js" />
</ItemGroup>
<Copy SourceFiles="@(JS)" DestinationFiles="@(JS -> '$(DestinationPath)\%(RecursiveDir)%(Filename).src%(Extension)')" Condition="'%(Extension)'=='.js'">
  <Output ItemName="JavaScriptFiles" TaskParameter="DestinationFiles" />
</Copy>
<AjaxMin JsSourceFiles="@(JavaScriptFiles)" JsSourceExtensionPattern="\.src.js$" JsTargetExtension="min.js" SourceMapType="V3">
</AjaxMin>

ここでは、最初にファイルを宛先フォルダーに(再帰的に)コピーし、次にそれらに縮小を適用しています。ソースマップファイルが必要だったので、元のファイルを保持しましたが、ソースマップが必要ない場合は、縮小が完了した後にソースファイルを削除できます.

于 2013-08-21T13:10:07.860 に答える