https://github.com/ImmoweltGroup/flow-mono-cli
A command line interface that aims to solve a few issues while working with flow typed codebases in a mono-repo.
https://github.com/ImmoweltGroup/flow-mono-cli
flow flowtype flowtyped lerna lernajs monorepo workspaces yarn
Last synced: 6 months ago
JSON representation
A command line interface that aims to solve a few issues while working with flow typed codebases in a mono-repo.
- Host: GitHub
- URL: https://github.com/ImmoweltGroup/flow-mono-cli
- Owner: ImmoweltGroup
- License: mit
- Archived: true
- Created: 2017-11-03T13:03:41.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2022-04-24T23:34:46.000Z (over 3 years ago)
- Last Synced: 2025-03-22T02:03:34.350Z (7 months ago)
- Topics: flow, flowtype, flowtyped, lerna, lernajs, monorepo, workspaces, yarn
- Language: JavaScript
- Homepage: https://immoweltgroup.gitbooks.io/flow-mono-cli/
- Size: 1.13 MB
- Stars: 88
- Watchers: 2
- Forks: 12
- Open Issues: 33
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-flow - flow-mono-cli - CLI tool to make working with monorepos easier. (Tools)
README
# flow-mono-cli
[](https://stackshare.io/immowelt-group/)
[](https://travis-ci.org/ImmoweltGroup/flow-mono-cli)
[](https://david-dm.org/ImmoweltGroup/flow-mono-cli)
[](https://david-dm.org/ImmoweltGroup/flow-mono-cli#info=devDependencies&view=table)
[](https://renovateapp.com/)
[](https://github.com/semantic-release/semantic-release)`flow-mono-cli` is a command line interface that aims to [solve](https://github.com/facebook/flow/issues/4738) [a](https://github.com/facebook/flow/issues/5107) [few](https://github.com/flowtype/flow-typed/issues/1391) [issues](https://github.com/lerna/lerna/issues/891) [while](https://github.com/facebook/flow/issues/869) working with flow typed codebases in a mono-repo.
It provides a set of commands that we found to be very useful *if you want your mono-repo packages to have their own flow instances*. We do not intend to replace existing packages and furthermore we find it to be of importance that these issues are getting fixed at their respective packages but in the meantime a separate CLI was the fastest and best option we found.
## Features
* Creates symlinks for flow to be able to resolve dependencies which were installed/hoisted into the root `node_modules` of your mono-repo into each packages `node_modules`.
* Smart resolve mechanism of mono-repo packages with a dependency to `flow-bin`, based on the `workspaces` config in your root `package.json`.
* Keeps your `flow-bin` and `flow-typed` versions in sync across your mono-repo packages.
* Maintains a single or fallback `.flowconfig` across all packages.
* Creates flow-typed stubs for in-direct dependencies (dependencies of dependencies).
* Configurable via a `.flowmonorc` or `flow-mono` property in your mono-repo's root `package.json`.## Installation
```sh
$ npm install flow-mono-cli --save-dev
```or
```sh
$ yarn add flow-mono-cli --dev
```afterwards make sure that you've got your workspaces configured in the root `package.json`, e.g.
```json
{
"workspaces": [
"packages/*"
]
}
```## Commands and Documentation
* [Introduction](/docs/introduction/README.md)
* [`flow-mono create-symlinks`](/docs/cli/create-symlinks.md)
* [`flow-mono install-types`](/docs/cli/install-types.md)
* [`flow-mono create-stubs`](/docs/cli/create-stubs.md)
* [`flow-mono align-versions`](/docs/cli/align-versions.md)## Contributing
See the `CONTRIBUTING.md` file at the root of the repository.## Licensing
See the `LICENSE` file at the root of the repository.