This monorepo included libraries, tools, and helpers that will make my life easier.
- package - package name (e.g.
@kcconfigs/tsconfig,@kcexamples/demo)- Use on package.json#name field and release-please/config.json#component field
- component - package name without at(@) sign (e.g.
kcconfigs/tsconfig)- Use on Git commit scope and Git tag prefix
- package version || version - package version (e.g.
0.2.0,1.2.3,1.0.0-beta.1)- Use on package.json#version field
- prerelease - package version contains prerelease identifier (e.g.
1.0.0-beta.1)- Similar to package version; more specific to prerelease only
- prerelease number - number at the end of prerelease (e.g.
1,2)- If package version is
1.0.0, then prerelease number is empty - If package version is
0.1.2-beta.2, then prerelease number is2
- If package version is
- Git tag || tag - Git tag string (e.g.
kcconfigs/tsconfig+v1.2.3)- Syntax:
<component>+v<version>
- Syntax:
- npm tag - npm tag string (e.g.
latest,rc,beta,alpha)- Use with install package (e.g.
npm install @kcconfigs/tsconfig@beta) - Node will use
latestwhen not specify
- Use with install package (e.g.
- Support Pnpm monorepo
- Move
@kc*topackages/@kc*to simplify number of directories - Support run dts test using vitest
- Support test junit output (reports/test-results)
- Support test coverage output (reports/coverage)
- Support TypeDocs
- Support Biome
- Support commitlint && commitizen
- Support Git hooks via lefthook
- Support Superlinter and configured linters
- Support Megalinter and configured linters
- Support SonarQube Cloud
- Support new package generator
- Automatically update dependencies via dependabot
- Automatically merge PRs via mergify
- Automatically increase version using release-please
- Set GitHub release to immutable
- release-please repository status (googleapis/release-please#2545)
- right now you cannot convert prerelease to stable version easily (googleapis/release-please#2515)
- Workaround 1: use release-as commit to force which version to deploy
- Workaround 2: use multiple config (release-please-example)
- Workaround 3: manually update manifest.json file to previous version
- @kcconfigs/textlint didn't works at all (textlint/textlint#1896)
- @kcconfigs/biome/features/* didn't works (biomejs/biome#9370)
- Dependabot generate invalid pnpm-lock.yaml file cause ci to failed (dependabot/dependabot-core#12244)
- Clone or Fork repository from GitHub:
git clone git@github.com/kc-workspace/kcws - Install Node.js using mise (or manual install based on mise.toml version)
- Install Pnpm:
corepack enable - Install dependencies:
pnpm install - Build package:
pnpm build:all(required for some internal commands)
## Build all packages
pnpm build:all
## Test all packages
pnpm test:all
## Fix lint and format on all packages
pnpm fix:all
## Generate document html at ./docs folder
pnpm docs:all
## Clean built folders
pnpm clean
Shared configuration for KC's projects (personal)
Example project for testing and Proof of concept
Internal packages specifically for @kc*/* packages
Command-line tools for KC's projects (personal)
TypeScript type definition utilities helper
Generic packages for full-stack development (including both Frontend and Backend).