standard-monorepo
Goal
The goal is to create a library that will help you and your team manage js monorepos. We assume that you run github flow with rebase enabled and provide everything available in the CLI programatically.
standard-monorepo should be all you need to run a js monorepo effectively, no need to setup commitlint, fiddle with lerna and optimise CI environments.
Roadmap v1
-
[x] Conventional commits Also supports a "--scope" flag and validates against a JIRA ticket number
- [x] Lint (Similar to commitlint, without the configuration)
$ standard-monorepo commit "feat: did things" > [SUCCESS] Commit message meets the conventional commit standard
$ standard-monorepo commit "did things" › Error: [FAIL] › › #################################### › did things › #################################### › › › Make sure you follow the conventional commit format and provide the correct scope flag for your needs.
- [x] Prompt (Similar to commitizen, without the configuration)
- [x] Lint (Similar to commitlint, without the configuration)
-
[x] Detect packages (yarn workspaces glob)
-
[x] Circular Dependencies
- [x] Find circular dependencies
- [x] "--max" and "--max-total-paths" flags to prevent addicional circular dependencies or paths being introduced (if below they will output warnings instead of a failure)
$ standard-monorepo circular-deps --max=1 --max-total-paths=55 Found 2 circular dependencies in the project, please fix these as soon as possible. |> Maximum circular dependencies allowed is 1 "--max", found: 2 |> Maximum circular dependencies *paths* allowed is 55 "--max-total-paths", found: 5 ####################################################################### |> foo -> bar -> |> a -> b -> c ->
-
[x] Print what packages have changed since a git ref. See
standard-monorepo list
-
[ ] CI helpers (github actions / gitlab ci / circle ci / etc) so that we only build/test what has changed
-
[ ] Run command (Similar to
lerna exec "echo hello" --stream
andlerna exec "echo hello" --parallel
) -
[ ] Watch command (Something that doesn't exist in the ecosystem at the moment)
-
[ ] Publish (Similar to
lerna publish --conventional-commits
)
Usage
$ npm install -g standard-monorepo
$ standard-monorepo COMMAND
running command...
$ standard-monorepo (-v|--version|version)
standard-monorepo/0.9.0 linux-x64 node-v12.22.12
$ standard-monorepo --help [COMMAND]
USAGE
$ standard-monorepo COMMAND
...
Commands
standard-monorepo help [COMMAND]
USAGE
$ standard-monorepo help [COMMAND]
ARGUMENTS
COMMAND command to show help for
OPTIONS
--all see all commands in CLI
See code: @oclif/plugin-help