Template versions in different branches:
main
: version for creating packagesapplication
: version for webapps (using Next.JS)docker
: dockerized version ofapplication
To create a new monorepo using this template:
git clone -b main [email protected]:andyjy/monorepo-template.git my-new-monorepo
cd my-new-monorepo
npm run monorepo-eject
.. then start your project, commit, add git remote and push
- npm workspaces
- lerna monorepo management
- release scripts to manage versioning and publishing to npm, using Conventional Commits for semantic versioning:
npm run release
for releases frommain
npm run release-canary
for canary releases fromcanary
- conventional-changelog changelog generation
- release scripts to manage versioning and publishing to npm, using Conventional Commits for semantic versioning:
- Emojional-commitment to bring some emojion to a Conventional commit history
- Next.js-ready (compatable typescript, eslint config etc)
- typescript -
npm run typecheck
- jest -
npm run test
- eslint -
npm run lint
- prettier
- husky git hooks:
pre-commit
with lint-staged for staged changes: typecheck, lint/fix, and prettier-ifycommit-msg
: rewrite commit messages with emojional-commitment
- editorconfig
- .vscode
packages/
_monorepo-utils
: base config files & util scripts_eslint-config-monorepo-utils
: eslint base configexample-package
: example typescript package