hela
Version:
A wrapper package of `@hela/core` and `@hela/cli`.
113 lines (87 loc) • 3.16 kB
Markdown
# The Hela Project
> Hela v4. Powerful, simple and fast software development and management system.
## More docs soon
## Highlights
- Support for monorepos and non-monorepo setups
- Supports multiple fixed and/or multiple independent-versioned projects
- example is this repo: ` `, `*asia*` and `*xaxa*` packages are fixed, the
others are not
- it doesn't really matter, you can do whatever mix you want, hence the
composable functions and commands
- Similar to `lerna` or other monorepo tools
- Familiar syntax and user experience
- Smaller, faster, more powerful
- Works with or without `git`
- Seamlessly works with NPM Workspaces or Yarn Workspaces
- Use `hela publish <...packages>` to publish
- Use `hela version <semver> <...packages>` before `hela publish` to just bump
- Development since 2017, last rewrite 2022 was from the ground up
- Shareable configs and presets, like `/preset-workspaces` and
`/preset-tunnckocore`
## Try
You can try 's config `/preset-tunnckocore` which includes:
- all commands from `/preset-workspaces`
- plus, `lint`, `test`, and `format`
- how? in `package.json` pass `"hela": "@hela/preset-tunnckocore"`
- or create a `hela.config.js` file (accepts ESM)
- which can just `export default import('@hela/preset-tunnckocore');`
## Install
This is ESM-only module and requires Node.js v16+
```
npm i -D /cli @hela/preset-workspaces
```
then in your `package.json` (automatically reads the `workspaces` field, below
are just example ones)
<!-- prettier-ignore-start -->
```json
{
"hela": "@hela/preset-workspaces",
"workspaces": [
"packages/*",
"@scoped/*",
"xaxa/*",
"modules/*"
]
}
```
**Note:** Keep in mind it also support nested monorepos, just define them first, like so:
```json
{
"hela": "@hela/preset-workspaces",
"workspaces": [
"packages/@tunnckocore/*",
"packages/*",
"modules/xaxa/*",
"modules/*"
]
}
```
<!-- prettier-ignore-end -->
and print the help
```
hela --help
Usage:
$ hela <command> [options]
Commands:
init Resolve workspaces and packages information
affected [name] List affected workspaces of change in `name` package
filter <...patterns> List all packages matching a given filter pattern
publish <...packages> Publish given package names, using `npm publish -ws`.
workspaces [name] Load workspace graph file, or list resolved workspace(s)
version <semver> <...names> Bump version of packages given in --filter flag
For more info, run any command with the `--help` flag:
$ hela init --help
$ hela affected --help
Flags:
-h, --help Display help message
-v, --version Display version
--cwd some global flag (default: "/home/tunnckocore/opensource")
--verbose Print more verbose output (default: false)
--showStack Show more detailed info when errors (default: false)
-c, --config Path to config file (default: "hela.config.js")
# initialize monorepo setup
hela init --verbose
hela filter --help
hela publish --help
hela version --help
```