Skip to content

Assess yarn workspaces to handle multiple build configurations. #277

@subdavis

Description

@subdavis

Originally, I thought it would be easy enough to separate code by parent folder and just use aliases (As in #270) but I think some sort of multipackage organization will be needed.

Here's the packages we're going to have:

  • vue-media-annotator library (published)
  • viame-web application common (private)
  • viame-web-girder web build configuration + API client (basically just API and a main.js file)
  • viame-web-electron desktop build configuration, which will have a slew of other dependencies unique to the electron ecosystem.
  • build-config a shared meta-package that has stuff like babel config, eslint config, jest config, all the stuff we'd have to duplicate across all other packages.

I've looked at how some other projects manage this, and they basically all ended up writing their own custom webpack to wrangle multiple build configurations. I think I'd rather have multiple packages and a single build config in each one.

I'm looking at something like https://medium.com/trabe/monorepo-setup-with-lerna-and-yarn-workspaces-5d747d7c0e91 but without lerna. Once Vue 3 launches, we're probably going to want to jump ship to vite, but I'm pretty sure using workspaces won't have any impact on that.

This will impact @mattrix27 as he explores electron. Requesting comments from @BryonLewis and @AlmightyYakob

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type: Housekeepingrelated to code quality rather than a featureType: questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions