我使用 ajaxmin 来缩小我的所有JS文件。一切都很完美,但我对输出文件的生成方式没有什么问题。
目前发生的事情是JS文件在其路径旁边缩小。例如,如果原始路径为包含/ 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>
请帮忙。
答案 0 :(得分: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>
这里首先将文件复制到目标文件夹(递归),然后对它们应用缩小。我需要源地图文件,这就是为什么我保留原始文件,但如果你不需要源地图,那么你可以在缩小完成后删除源文件。