Cross-repository Component Sharing using Mono-repo Multi-packages Architecture

Building npm bundles across several individual repos make enormous changes difficult to create, test, and print. By means of a monorepo we could resolve a lot of these and more difficulties.

Believing

Our UI frame benefit from zuul ci github so as to get independently versioned bundles for every UI utility or component so they may be shared across programs.But right now we construct these packages in separate repos.Setting up all of the packs locally is a very long procedure which takes up a whole lot of space since you put in the exact same development tools 50 times.

Running evaluations across all packs means conducting every one separately which may also not be possible.We do not have a fantastic awareness of code protection across all bundles.The widget could still only be a standard git repository, but using a packs / directory which includes all our elements, utils, etc., that have constructed into different npm packages.

There is a Whole Lot of advantages to this:

Now you can create cross-dependency changes within one commit/pull ask

you are able to run tests across each the packages simultaneously (notice you are still able to examine one bundle with npm evaluation — –testPathPattern cf-component-button)

We just have to set up the ~300 modules which compose the build system after

We just have one build system for all

We could find a high degree sense of code protection across all packs.

Maintaining jobs across several Git repositories may get very troublesome. While creating Shopsys Framework, we made several new repositories for different parts of the frame and shortly realized there was a better method for tackling so many endeavors. This report explains our difficulty with numerous Git repositories and poses a potential solution that we made a decision to embrace.

Introduction

At the beginning phases of the growth of Shopsys Framework all supply codes were saved in a single Git repository since the job was initially intended for a monolithic platform.

Leave a Reply

Your email address will not be published. Required fields are marked *