Vinblad
Vinblad

Reputation: 686

Microsoft Ajax Minifier and NAnt

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.

Upvotes: 2

Views: 613

Answers (4)

Lokesh
Lokesh

Reputation: 1

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

Upvotes: 0

Elph
Elph

Reputation: 1604

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

Upvotes: 1

lokesh
lokesh

Reputation: 1

    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>

Upvotes: 0

Adam Kahtava
Adam Kahtava

Reputation: 412

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)

Upvotes: 3

Related Questions