โ UNMAINTAINED
Too much work, not enough reward. The downside of a lego-brick ecosystem is that nothing has cohesion. To properly build Freighter, it would require forking much of the ecosystem and combining it into a monolithic build system, which is far out of scope.
It was a fun experiment, but I'll settle for a bespoke build process in the future.
Freighter scaffolds and manages monorepo configurations. Here's what you get right out of the box:
- Yarn Workspaces
- Jest projects
- ESLint
- Prettier
- Lerna
- Babel 7
- Code quality checks with precommit hooks
- A solid CI script in a single command
Requirements: you've already got yarn
and git
installed.
Installation:
$ yarn global add @freighter/cli
Now you should have a new freighter
command in the terminal. Try out the init
command:
$ freighter init new-project
In about 15-30 seconds, you should have yourself a fancy, batteries-included monorepo ๐
Here are the scripts you'll probably find useful:
yarn lint
runs ESLint on all the packagesyarn test
runs every test in the monorepoyarn flow
type checks everythingyarn ci
run all 3 in CI mode
None.
I built Freighter because it can take days to configure all the tooling that makes monorepos so enjoyable. I don't want to spend days. Frankly, I'd rather be building apps. So if Freighter ends up being more work than it's worth, I'll abandon it.
๐ You've been warned.
Because freighters ship containers. npm packages are kinda like containers. Therefore, monorepos are freighters. #science
If you like the idea of Freighter, give it a star โญ
It'll help me gauge interest in the project.