A monorepo starter template using native NPM workspace 🗂️
- Fast
- No fattening! No Yarn, no Lerna, no NX, or others. Just native NPM!
- GitHub auto releases for each package (after
git push
) - NPM auto publish for each package (after
git push
) - Auto updates changelog for each package (after
git push
) - Auto updates dependencies
- Develop packages with mixed languages in one repository
- Write your code using the latest syntax
- UMD, CommonJS, and ESM output format for JavaScript packages
- Auto generate
*.rtl.css
file for SCSS packages - Live playground ready
Click the “Use this template” button.
Alternatively, you can run:
git clone https://github.com/bent10/monorepo-starter.git
# Go to the project directory
cd monorepo-starter
# Install dependencies
npm i
# or
npx degit "bent10/monorepo-starter" my-project
# Go to the project directory
cd my-project
# Install dependencies
npm i
We provide several package templates. Please install the required dependencies based on the template you are using.
$ npm run watch Run watch task for all packages
$ npm run lint Run lint for all packages
$ npm run build Run build task for all packages
$ npm run test Run test for all packages
$ npm run coverage Run test coverage for all packages
$ npm run prettier Run prettier for `dist` files (ignoring UMD and *.min.* files)
$ npm run clean Run clean task for all packages
$ npm run reset Run clean task for all packages
You can add -w
or --workspace
flag to target for one or more package(s):
npm run build -w pkg1 -w pkg2 ...
- NodeJS (core)
- ESLint (core)
- Jest (core)
- Prettier (core)
- Renovate (core)
- Babel (optional)
- Typescript (optional)
- SCSS (optional)
- Stylelint (optional)
- Rollup (optional)
- Webpack (optional)
- SSG – using Eleventy (optional)
- HTML validate (optional)
- AVA (optional)
- Semantic release (optional)
⚡️ katchow! We 💛 issues.
When committing, please conform to the semantic-release commit standards. Please install commitizen
and the adapter globally, if you have not already.
npm i -g commitizen cz-conventional-changelog
Now you can use git cz
or just cz
instead of git commit
when committing. You can also use git-cz
, which is an alias for cz
.
git add . && git cz
A project by Stilearning © 2021.