I have several Bundles Virtual Paths defined on the BundleConfig.config
where each one have associated several javascript path files.
What I want is to join all this virtual paths in a single one.
For instance, I have the following code:
bundles.Add(new ScriptBundle(BundlesVirtualPaths.EditorV2.Main).Include(
"~/Scripts/EditorV2/main.js"
));
bundles.Add(new ScriptBundle(BundlesVirtualPaths.EditorV2.Main2).Include(
"~/Scripts/EditorV2/main2.js"
));
bundles.Add(new ScriptBundle(BundlesVirtualPaths.EditorV2.Main3).Include(
"~/Scripts/EditorV2/main3.js"
));
And what I want is a away to do something like this:
bundles.Add(new ScriptBundle(BundlesVirtualPaths.EditorV2.AllScripts).Include(
BundlesVirtualPaths.EditorV2.Main,
BundlesVirtualPaths.EditorV2.Main2,
BundlesVirtualPaths.EditorV2.Main3
));
This can be done? I can I do it?
You can try something like this:
public static class BundleHelpers
{
public static BundleCollection JoinScriptBundle(this BundleCollection bundleCollection, string virtualPath, params string[] bundlesToJoin)
{
var bundleResolver = new BundleResolver(bundleCollection);
Bundle allScriptBundle = new ScriptBundle(virtualPath);
foreach (var bundle in bundlesToJoin)
{
foreach (var scriptPath in bundleResolver.GetBundleContents(bundle))
{
allScriptBundle = allScriptBundle.Include(scriptPath);
}
}
bundleCollection.Add(allScriptBundle);
return bundleCollection;
}
}
Then you can join your bundles:
bundles.JoinScriptBundle("~/bundle/allscript", "~/bundles/jquery", "~/bundles/jqueryval", "~/bundles/modernizr");