Is there any way to set up the default System.Web.Optimization.ScriptBundle to generate source maps for the bundled and minified files? Is there an equivalent solution, other than having to pre-generate the bundles and source maps before each build?
-
Have you found the solution?Rajesh Dhiman– Rajesh Dhiman2014-01-28 14:45:10 +00:00Commented Jan 28, 2014 at 14:45
-
I haven't found a ready-made solution yet. Once I have some free time, I'll see if I can write something myself; I'll post an answer then.Mihai– Mihai2014-01-28 15:14:58 +00:00Commented Jan 28, 2014 at 15:14
-
If you have VS 2013, you can use the new Task Explorer VSIX plugin. Read about one approach here. I'm considering getting gulp working without the plugin in VS2012 as an option. The main pain point is getting node.js, NPM, etc. all set up on my CI servers.jessewolfe– jessewolfe2014-12-03 02:51:04 +00:00Commented Dec 3, 2014 at 2:51
2 Answers
It looks like in the meantime some kind soul has released a custom class that does exactly what I need.
You can get his source at https://github.com/benmccallum/AspNetBundling.
2 Comments
ScriptWithSourceMapBundleBuilder.BuildBundleContent(...) method and see that the WebOptimization framework only calls IBundleBuilder.BuildBundleContent once on first request of contents, at which time I also generate the .map file.Nothing built in yet, although I wish it was. That being said, if you don't have to use the built in optimizer you could opt for Web essentials found here and use it to create bundles with map files for you. These bundles are kept up to date as you save changes to the source js files so you would not need to recreate the bundles per build.
Right click on any script file once web essentials is installed, select the web essentials option at the top of the context menu, and select minify javascript file. Alternatively you can select multiple javascript files and use web essentials to create a bundle in the same fashion.
3 Comments
ScriptBundle will create a /bundles directory and auto append a random GUID so the browser knows this is a new bundle version and the cache is circumvented. Web Essentials does not support cache busting, correct?