8 Answers, 1 is accepted
We offer the following options to use Kendo UI without including a combined file:
1. Custom Download Builder - allows the user to create custom combined file that contains only the required widgets.
2. Use grunt
3. Include the separate files
4. Use RequireJS
We don't have plans to reduce the size of the combined file because this would require removing features.
I'm sure there must still be room to reduce the file size without removing features unless your size vs feature ratio is already (and incredibly) at 100% efficiency!.
I'm just surprised at the size vs functionality e.g. when compared to other frameworks such as BootStrap / Angular etc. which are tiny by comparison. I hoped that maybe you're still at the stage where you're adding / improving functionality with a mind to reduce the size and improve performance later.
You are right there may be room for improving the size. However the four options that I listed allow better size optimization. For example if you don't use the Scheduler you can avoid including it altogether instead of optimizing its implementation size by 10-20%.
Regarding the grunt task for custom builds, it appears to automatically include all dependencies for each widget. For example, a custom build including only the grid widget ("grunt custom:grid") produces a kendo-custom.js that is almost 40000 lines long and includes OData, XML, Excel, and PDF support, even those were not explicitly requested.
Is it possible to run the script and exclude all non-required dependencies, like the way the online custom download tool works? In other words, I'd like to be able to do "grunt custom:grid,editable" to get a grid with editing support but nothing else.
Currently you can cannot build widgets based on certain features using grunt/gulp the same way you can do that using the custom download builder.
So is there any supported way to create a custom build of the non-minified files? The non-minified version is helpful for development and debugging. AFAIK, the online tool and RequireJS support work only with the minified files.
I am afraid that currently there is no way to achieve this using the exposed build tools, and the only to build feature specific distribution is using the custom download builder, that works with minified files only. However for development there is no much difference if you have all the features included in the debug scripts.