redhot
Version:
TypeScript Monorepo Management
99 lines (69 loc) • 2.28 kB
Markdown
# Red Hot
> Monorepo management for TypeScript projects
# Features and Design Goals
- [ ] Manage many interlinks or closely related packages with ease
- [x] First Class Support for TypeScript 2.x
- [ ] Manage commit messages
- [ ] Generate Documentation that is GitHub Pages compatible
- [ ] Automatic Semantic Versioning
- [ ] Automated Deployment
- [ ] Automated Changelog generation
- [x] Support for npm 3+ only
- [x] Useful out-of-box with configuration
- [x] Convention over configuration
- [x] DRY/KISS
# **API**
## **redhot init**
Initialized your new `redhot` managed project with default configurations. Will
generate the following files for you.
- redhot.json
- tsconfig.json
- tslint.json
- package.json
- README.md
- LICENSE.md (MIT)
- .travis.yml
- .github/ISSUE_TEMPLATE.md
- .github/PULL_REQUEST.md
- .gitignore
## **redhot create [packageName]**
Scaffolds and sets up a new managed package. Generates a folder named
`packageName` and generates the following files inside
- package.json
- README.md
- src/index.ts
- test/index.ts
## **redhot commit**
Used to enforce good commit messages that are used to follow semantic versioning
as well as generate changelogs. It will bring you through a series of prompts to
generate your awesome commit messages in a nice and easy manner.
## **redhot build**
Builds all managed packages with `tsc`. Configurable via `tsconfig.json`
## **redhot lint**
Lints all managed packages with `tslint` configured via `tslint.json`
## **redhot test**
Runs tests for all managed packages with `mocha` and `ts-node`
## **redhot release**
Publishes all modified packages to NPM following semantic versioning.
Recursively updates packages that depend upon them as long as there are no
breaking changes included. Generates changelogs and updates documentation.
## **redhot exec -- [command]**
Runs a command inside of all managed packages
## **redhot labels**
If you are using GitHub, this will generate issue labels that correspond your
configured packages.
# **redhot.json**
The configuration for all of your monorepo needs
```json
{
"packages": [
"package1",
"nested/package2"
],
"scripts": {
"clean": "rimraf lib",
}
}
```
### packages
An array of all the directories you'd like to manage