Giter Club home page Giter Club logo

Comments (6)

SamuelRiversMoore avatar SamuelRiversMoore commented on May 29, 2024 2

Nevertheless, a fix would require changes to the vue-grid-layout. You could duplicate the components of the library and replace the EventBus with another library.

Indeed, thank you for the advice! I imported a custom version of the library, using mitt as eventBus and it works well.

I don't know how Parcel handled this behavior. Maybe it bundled Vue itself into the Panel build? How big was your bundle?

The previous build with Parcel v1 was 230kb, now with kirbyup and without the Vue import it weights 131kb!

Thank you again for your help!

from kirbyup.

johannschopplich avatar johannschopplich commented on May 29, 2024 1

I appreciate you took the time to refactor the library. Occasionally I give tips on how to implement something in an issue, which then doesn't happen because of the effort involved for the person asking. Glad to know that the effort for myself writing the answer was worth it!

from kirbyup.

SamuelRiversMoore avatar SamuelRiversMoore commented on May 29, 2024

If I may add : vue-grid-layout 2.4.0 is installed as a dependency and the GridLayout and GridItem components are imported from vue-grid-layout inside a wrapper component which is used for the panel field.

from kirbyup.

johannschopplich avatar johannschopplich commented on May 29, 2024

Seems like the vue-grid-layout library imports Vue to use it as an EventBus. Since Vue is imported in the library, kirbyup will externalize it.
A cleaner solution would be to use a library like mitt for the EventBus, instead of initializing Vue. The latter one was/is common in Vue 2 contexts. Vue 3 dropped this feature.

Nevertheless, a fix would require changes to the vue-grid-layout. You could duplicate the components of the library and replace the EventBus with another library.

I don't know how Parcel handled this behavior. Maybe it bundled Vue itself into the Panel build? How big was your bundle?

from kirbyup.

jonaskuske avatar jonaskuske commented on May 29, 2024

FWIW, I've raised the core issue – Kirby exposing the Vue constructor only via use so plugins can't target it – in getkirby/kirby#4735. Aside from the occasional compat issues we have like this one or #8, the way Vue is provided right now also completely prohibits using Vue 2.7 functionality like dynamic CSS variables or setup functions :(

from kirbyup.

SamuelRiversMoore avatar SamuelRiversMoore commented on May 29, 2024

Great! Thank you so much for raising that discussion up!

from kirbyup.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.