Click here to Skip to main content
15,892,674 members
Articles / Programming Languages / C#

Run Grunt Task in Visual Studio Release Build with a bat File

Rate me:
Please Sign up or sign in to vote.
0.00/5 (No votes)
21 Aug 2014CPOL 7.3K   1  
Run Grunt Task in Visual Studio Release Build with a bat File

Originally posted on http://geekswithblogs.net/Aligned/archive/2014/08/19/run-grunt-task-in-visual-studio-release-build-with-a.aspx

  1. Add a BeforeBuild in your csproj file. Edit the XML with a text editor.
    XML
    <Target Name="BeforeBuild">
      <Exec Condition="'$(Configuration)' == 'Release'" Command="script-optimize.bat" />
    </Target>
    
  2. Create the script-optimize.bat:
    XML
    REM "%~dp0" maps to the directory where this file exists
    cd %~dp0\..\YourProjectFolder
    call npm uninstall grunt
    call npm uninstall grunt
    call npm install --cache-min 604800 -g grunt-cli
    call npm install --cache-min 604800
    
    grunt typescript requirejs copy less:compile less:mincompile

    This grunt command will compile typescript, run the requireJs optimizer, compile and minimize less.

  3. Make it use the minified code when the Web.config compilation debug is set to false.
    XML
    <!-- These CustomCollectFiles actions are used so that 
            the Scripts-Release folder/files are included
            when publishing even though they are not project references -->
      <Target Name="CustomCollectFiles">
        <ItemGroup>
          <_CustomFiles Include="Scripts-Release\**\*" />
      </ItemGroup>
      </Target>

That should be all you need to get a Grunt task to minify and combine JS (plus other tasks) in Visual Studio Release build with debug = false.

This is a great video of Steve Sanderson talking about SPAs, npm, Knockout, Grunt, Gulp, etc. I highly recommend it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
-- There are no messages in this forum --