Red Hot
Monorepo management for TypeScript projects
Features and Design Goals
- Manage many interlinks or closely related packages with ease
- 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
- Support for npm 3+ only
- Useful out-of-box with configuration
- Convention over configuration
- 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
packages
An array of all the directories you'd like to manage