43

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?

3
  • Have you found the solution? Commented 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. Commented 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. Commented Dec 3, 2014 at 2:51

2 Answers 2

22

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.

Sign up to request clarification or add additional context in comments.

2 Comments

What @Kurt said is simply untrue. In any means, I've updated the github repo to include a test website. I encourage him to clone the repo, attach a debugger into the 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.
You can now get the source from the below NuGet package nuget.org/packages/AspNetBundling
6

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

Using 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?
Unfortunately, I couldn't tell you now as I've moved onto another project in rails. We were using varnish for our caching solution so we didn't run into the issue as we could bust the cache on demand. I don't recall if web essentials was using some kind of guid to bust the cache for you or not....
It appears Mads (the author of Web Essentials) wrote this solution for cache busting.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.