microsoft / fast

The adaptive interface system for modern web experiences.
https://www.fast.design
Other
9.28k stars 594 forks source link

Implement NPM 7+ w/ Workspaces #5329

Closed chrisdholt closed 1 year ago

chrisdholt commented 3 years ago

4737 was initially tracked as an investigation into whether or not we should move towards NPM 7+, a newer version of Yarn, or continue on with Yarn + Lerna. The issue has now been closed with updates to the FAST Tooling repository which served as a small test bed.

The results of the investigation show that NPM 7+ is likely the best approach for our mono repository given our current requirements. This issue exists as notification that we are beginning to implement this.

radium-v commented 3 years ago

We should check out Lage as a replacement for workspace running: https://microsoft.github.io/lage/

radium-v commented 3 years ago

So I spent some time this weekend looking into lage and learned:

One thing we lose with Lerna is the ability to keep the workspaces separated from the packages. Right now, when we run yarn prepare or yarn lerna run test --stream, it only operates on a subset of packages; the packages listed in lerna.json and those in the root package.json differ, so that Yarn can install dependencies for all packages but Lerna only builds and tests in some.

Lerna's packages list:

Workspaces packages list:

Ideally, we'd either have every package explicitly listed in the package.json config, or use wildcards that cover all packages. Either way, changing the list would cause all packages in the project to build on every prepare (namely the docusaurus website, and the node-based examples).

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

awentzel commented 1 year ago

Already using workspaces organized according to existing package goals.