DEV Community

Discussion on: The Ultimate Guide to TypeScript Monorepos

Collapse
 
deanhiller profile image
Dean Hiller

I am confused. I do not see where you do the 'git status' for a monobuild here to see which files changed? That then maps to libraries modified. After knowing libraries modified, you can truly do a scalable monobuild that builds what has changed and any libraries and microservices that depend on that as well. I am missing that step here which allows a monobuild to scale to many libraries and projects while being fast. Question posted on stack overflow as well stackoverflow.com/questions/719410...

Collapse
 
mxro profile image
Max Rohde

Thanks for your question! This is something I have definitely fiddled around with in a few monorepo based projects. I think this is probably something that maybe not advisable to built into a template. Instead, using Yarn workspaces here gives us the flexibility to do partial builds when required.

In the Goldstack monorepo have used the has-changed-path GitHub action. I would first check if a particular workspace has changed: master.yml#L49 and then run certain steps only when a workspace has changed: master.yml.

Don't think we can generally get around compiling everything, but using TypeScript references this should hopefully not take too long even for larger projects.