Microsoft Ajax Minifier and NAnt

623 Views Asked by At

Could 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.

4

There are 4 best solutions below

0
On

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.

  1. Downloaded the YUI Compressor assemblies for .NET
  2. Modified their Sample MSBuild.xml File
  3. 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)
0
On

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

0
On
<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>
0
On

    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>