joiner
yanice
joiner | yanice | |
---|---|---|
1 | 1 | |
0 | 13 | |
- | - | |
4.5 | 8.7 | |
5 months ago | 4 months ago | |
TypeScript | TypeScript | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
joiner
-
Best Practices for TypeScript Monorepo
The best™ way I found was the dumb way: at emit time (./build, ./dist in package "one") simply copy the new build to all the required dependencies across the local file system (two/node_modules/one/build, three/node_modules/one/build, etc.). It's just dumb enough to be good enough. I stress tested with around 100 packages and it works rather decent, especially when all the packages are using esbuild/nodemon for development and restart on node_modules update. To automate this I have added a "develop"[1] feature in a tool, joiner, I made for running tasks over multi-repos.
[1] https://github.com/plurid/joiner#development
yanice
-
Best Practices for TypeScript Monorepo
I'm dabbling in the monorepo-tool-space for quite a while already and somehow managed to never hear about Turborepo, seems very interesting!
Just a few years back, the monorepo-tooling-landscape left much to be desired, there were a lot of opinionated 'zero-config' tools out there that always seemed to fall apart the moment you strayed from their happy path. I even went so far to create my own tool (https://github.com/abuob/yanice), in parts because it was fun and taught me a lot and in parts because I simply didn't find something fitting our usecase.
It's cool that the tooling in this area is getting better and better, monorepos solve a lot of very annoying enterprise problems but require solid tooling to make it work, even when way smaller than google-scale.
What are some alternatives?
dpdm - Detect circular dependencies in your TypeScript projects.
dependency-cruiser - Validate and visualize dependencies. Your rules. JavaScript, TypeScript, CoffeeScript. ES6, CommonJS, AMD.
turbo-racer - High-performance distributed remote cache for Turborepo.
wireit - Wireit upgrades your npm/pnpm/yarn scripts to make them smarter and more efficient.
meta-updater
nx - Smart Monorepos · Fast CI
eslint-plugin-import - ESLint plugin with rules that help validate proper imports.
pnpm - Fast, disk space efficient package manager