Bundling and minification
Each control in the page can request resources (scripts and style sheets) to be added in the head
or body
elements. When the page HTML is rendered, DotVVM takes all such resources, sorts them so all their dependencies are met, and then adds the script
and link
elements in the page.
To extend this mechanism, the DotvvmConfiguration
object allows you to register custom objects which implement the IResourceProcessor
interface. These objects can perform additional actions with the collection of resources that will be rendered.
Bundling
This can be used e.g. for bundling. You can bundle several resources in one file, and configure DotVVM to include the bundle in the page instead of including the individual resources. You can use the BundlingResourceProcessor
class for this.
Please note that this class doesn't do the bundling automatically. You need to combine the script files or style sheets yourself, and register the bundle as a new resource, which you specify in the bundle registration:
var bundling = new BundlingResourceProcessor();
bundling.RegisterBundle(dotvvmConfiguration.Resources.FindNamedResource("myBundle"), "script1", "script2");
dotvvmConfiguration.Resources.DefaultResourceProcessors.Add(bundling);
For example, if any control requests the script1
resource, DotVVM will insert the entire bundle in the page instead of the individual script1
resource file.
Minification
Currently, DotVVM doesn't help with minification of resources. However, you can write your own IResourceProcessor
that will replace debug resources with the minified ones when running in the production environment.