Description
Just noticed that the overall component has 400+ kb in size.
I must say that's pretty huge for a component that generates fields.
After taking a look at the source code I noticed that moment.js
is used in several places for very basic functionalities. I think you can get rid of it to save some space.
Only by removing all moment js dependencies (4) the size shrinked from 400kb to 176kb.
There is also one component fieldVueMultiSelect
which for some reason uses the whole Vue
library. I don't think there is need to bring the whole library just to instantiate that component. There should be another way of doing it. By removing the vue dep the final file further reduces to 126kb.
Taking down lodash
util function brings the file down under 100kb.
To sum it up, by removing only external dependencies (moment, vue and lodash
) I managed to bring the library down from 400+ kb to 55kb and by removing external components it goes down to 29kb.
The size here is huge factor for people deciding whether to use such a component or not. I would say we could shrink this one down to 100-150kb very easily and then with some effort it can be brought under 100kb.