Run Grunt task in Visual Studio Release Build with a bat file
- by Aligned
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. <Target Name="BeforeBuild">
<Exec Condition="'$(Configuration)' == 'Release'" Command="script-optimize.bat" />
</Target> 2. Create the script-optimize.batREM "%~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:mincompileThis grunt command will compile typescript, run the requireJs optimizer, complie and minimize less.3. Make it use the minified code when the Web.config compilation debug is set to false
<!-- 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, ect. I highly recommend it.