Microsoft Ajax Minifier and NAnt [closed]
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this questionCould someone explain to me how to use the Microsoft Ajax Minifier from a nant-script as a nant-task. I've seen examples of how开发者_开发问答 to use it in Visual Studio but I would like the minification to be done on our CI-server.
I'm not sure specifically about the MS Ajax Minifier, but here's what I did to get the Yahoo! UI Library: YUI Compressor for .Net working.
- Downloaded the YUI Compressor assemblies for .NET
- Modified their Sample MSBuild.xml File
- Modified my nAnt script to run the MSBuild task (more details here: Build and publish .Net 2.0 projects with NAnt and the MSBuild task)
This is the code i use, it minifies all *.js and *.css in a folder using ajaxminifier
<foreach item="File" property="filename">
<in>
<items>
<include name="${deployment.dir}\js\*.js"></include>
<include name="${deployment.dir}\css\*.css"></include>
</items>
</in>
<do>
<echo message="Minifying ${filename} and overwritting file"/>
<exec program="${ajaxminifier.exe}"
workingdir="."
failonerror="true"
commandline='-clobber:true ${filename} -o ${filename}'/>
</do>
</foreach>
Note that this script overwrites the files with the minified version ( with -clobber:true arg). ${ajaxminifier.exe} is the path to ajaxmin.exe
description="AjaxminFilesCreation.">
<foreach item="File" property="Debugfile" >
<in>
<items>
<include name="**\*.debug.js"/>
</items>
</in>
<do failonerror="false">
<regex pattern="^(?'filename'.*)\.(?'extension2'\w+)\.(?'extension3'\w+)$" input="${Debugfile}" />
<regex pattern="^(?'path'.*(\\|/)|(/|\\))(?'file'.*)$" input="${Debugfile}" />
<echo message="renaming with filename=${path},file=${file}"/>
<exec program="${Minifie.lib}\ajaxmin.exe" commandline="${filename}.debug.js -o ${filename}.js" failonerror="true"/>
</do>
</foreach>
</target>
<foreach item="File" property="Debugfile" >
<in>
<items>
<include name="**\*.debug.js"/>
</items>
</in>
<do failonerror="false">
<regex pattern="^(?'filename'.*)\.(?'extension2'\w+)\.(?'extension3'\w+)$" input="${Debugfile}" />
<regex pattern="^(?'path'.*(\\|/)|(/|\\))(?'file'.*)$" input="${Debugfile}" />
<echo message="renaming with filename=${path},file=${file}"/>
<exec program="${Minifie.lib}\ajaxmin.exe" commandline="${filename}.debug.js -o ${filename}.js" failonerror="true"/>
</do>
</foreach>
精彩评论