This repository is structured as a monorepo. That means each package is published independently on npm.
- Lerna Docs: https://github.com/lerna/lerna
- Typescript Docs: https://www.typescriptlang.org/docs/home.html
- Reference Monorepo: https://github.com/typescript-eslint/typescript-eslint/tree/v3.1.0
-
Install NodeJS >= 10.x:
# On macOS brew install node
-
Install
lerna
cli:npm i -g lerna
-
Install all dependencies:
yarn
-
Build the projects
yarn build && yarn build:example
-
Run in Dev (Watch) Mode
yarn dev
yarn add <pkg> -W
Otherwise just go in each pacakge folder and use yarn normally.
Releases, versioning and Changelogs are handled by changesets.
Whenever you fix something or add a feature or open a PR, add a changeset file by running yarn changeset
and answer the prompts.
When these are merged to main
branch, the changeset/action in version
workflow will open a new PR with all the changes related to releasing done.
Merge that PR with a merge commit and version number as the commit message and create a Github Release with the version number as the tag, and it will trigger the release workflow that will publish these to npm.