Freighter
Monorepos without the hassle.
Project Status
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.
Purpose
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
Usage
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 lintruns ESLint on all the packagesyarn testruns every test in the monorepoyarn flowtype checks everythingyarn cirun all 3 in CI mode
Guarantees
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.
Why the name?
Because freighters ship containers. npm packages are kinda like containers. Therefore, monorepos are freighters. #science
Accelerating the project
If you like the idea of Freighter, give it a star
It'll help me gauge interest in the project.