A starter template for a monorepo using NPM workspaces.
- Quick start: Efficient starting point for Web and Node.js projects
- Lightweight: Only native NPM workspaces, for speed and simplicity
- Multilingual support: Supports multiple programming languages in a single repository
- Modern syntax: Supports the latest language features
- Flexible output: Output in any format
- Automatic updates: Keeps your dependencies up to date. See recipes for more info
- Automated releases: Automatically handles GitHub releases, NPM publishing, and changelog updates. Check out recipes for details
- Live Playground: Includes a live environment for testing code
To start a new project with this template, use one of the following methods:
Click the "Use this template" button above or clone the repository. Then, install dependencies:
npm i
Clone the template and install dependencies:
npx degit "bent10/monorepo-starter" my-project
cd my-project
npm i
npm run dev -w pkgName
: Starts the dev server for a specific packagenpm run build
: Builds the project and checks typesnpm test
: Runs tests with Vitestnpm run coverage
: Generates test coverage reportsnpm run types
: Generates TypeScript declaration filesnpm run lint
: Checks types and lints the projectnpm run format
: Formats code using Prettier
Use these commands to manage your development workflow. Add -w
or --workspace
to target specific packages:
npm run build -w pkg1 -w pkg2 ...
Package | Description | Version |
---|---|---|
js-lib | JavaScript library | v0.0.0-development |
theme | Bootstrap-powered theme | v0.0.0-development |
vite-plugin | Vite plugin | v0.0.0-development |
To add a new package:
-
Run the following command with your desired template:
# For npm 6.x npm create vite@latest packages/new-package --template react # For npm 7+ npm create vite@latest packages/new-package -- --template react
Check available templates
-
Open
packages/new-package/package.json
and remove dependencies already included indoogu
(e.g.,vite
,vitest
,typescript
,prettier
,eslint
).
Your new package is now ready for development with Vite features.
- Automated dependency updates โ Set up automated updates with Renovate
- Release automation โ Automate your project's release process
- module-starter โ A minimalist template for modern web development
- doogu โ A wrapper around modern JavaScript tools
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-2024.