diplodoc-platform / transform

Simple transformer YFM (Yandex Flavored Markdown) to HTML.
MIT License
50 stars 34 forks source link

Client bundle size for client-side application #446

Open danonechik94 opened 2 weeks ago

danonechik94 commented 2 weeks ago

I use @diplodoc/transform and @gravity-ui/markdown-editor in my client project to display and edit user messages. While working on it I noticed while throttling the internet connection, that the page bundle that contains both of these components takes up 2.4mb gzipped and it takes a long time to load on a throttled connection.

After reviewing the bundle with bundle analyzer, I noticed that lowlight and higlight.js takes up a lot of space in the bundle. Due to the fact that these are optional deps, I removed them, but still, the bundle takes up 1.4mb, although I don't use custom plugins in @diplodoc/transform and use the minimal commonmark preset in @gravity-ui/markdown-editor. In the bundle I see a lot of packages that are not being used (like plugins and table module).

I prepared a sample project here. You can use it to see the lazy-loaded bundle on the /editor page, that takes up 2.4mb.

I believe that both of these libraries can be optimized a bit, so that the size is adequate for a client application. I will also create an issue in the @gravity-ui/markdown-editor repo regarding this.

danonechik94 commented 2 weeks ago

@gravity-ui/markdown-editor issue is here.