How to organize a family of Quasar-based projects that are using common/internal components & modules



  • I’m in process of developing a “family” of projects for which I’ve considered Quasar being the best options.
    Here are the “individual” projects:
    1 x Cordova ClientApp: Android/iOS mobile application used by regular users (include BT/BLE support)
    2 x Cordova AdminApp: Android/iOS mobile application used by admins
    1 x SPA Dashboard: web application used by support
    1 x Electron TechnicianApp: Windows desktop app (with off-line support) with BT/bleno integration

    Aside of specialized functionality in all these apps, there are some common functionality and components that I want to reuse, so some modularization by introducing common “library” kind of modules should be used (ex: using FIrebase + authentication + login component, common store/module for user management …etc).

    Maybe the optimal solution is not necessary Quasar specific, but the issue is more generic and may apply to VueJS shared projects as well … The idea is to avoid exposing & publishing internal components as Node modules to be imported in other “consumer” projects …

    I had various ideas like using npm/yarn link to use internal modules without npm publishing or using a monorepo and yarn workspaces … but having a sample/template that really works it will be a lot better 😉

    Any suggestions , hints, links and refs will be highly appreciated … !



  • Well, +1 on this. I will have three “sub” apps and a main one, and for sure will need to share code (mixins, plugins, even pages) among them.

    Any hints or best practices about this?

    Thanks!



  • with git you could use this:

    https://git-scm.com/book/en/v2/Git-Tools-Submodules

    or with mercurial this:

    https://www.mercurial-scm.org/wiki/Subrepository

    IMHO private npm/yarn or other module manager doesn’t work in shared code/developer scenario (it works in distribution/production scenarios however).


Log in to reply