1e08b57071
relevant updates can be seen in the config, reasoning: standardization of further work |
||
---|---|---|
.husky | ||
.vscode | ||
src | ||
.editorconfig | ||
.gitignore | ||
.prettierignore | ||
.prettierrc | ||
LICENSE | ||
README.md | ||
eslint.config.js | ||
jest.config.cjs | ||
package.json | ||
pnpm-lock.yaml | ||
tsconfig.json |
README.md
TypeScript NPM Package Template
This is a boilerplate to jumpstart one's next TypeScript npm package development. It utilizes various tools to streamline development, testing, and publishing processes.
Features
TypeScript: For powerful type safety and improved code maintainability. tsup: A fast and efficient TypeScript bundler for streamlined development. pnpm: A package manager with features like workspaces and faster install times. (Optional, can be replaced with npm or yarn) Commitizen: Standardizes commit messages following the Conventional Commits specification. ESLint(New flat config!) & Prettier: Enforces code style and formatting consistency. Jest: A popular testing framework for unit and integration tests. Husky: Executes pre-commit hooks to ensure code quality and formatting before commits. Semantic Release: Automates versioning and changelog generation based on commit messages.
Getting Started
Clone it via bash or in git* web ui
git clone https://git.mattmor.in/Madmin/ts-npm-package-template.git $name
cd $name
sudo rm -rf .git
git init
Install dependencies:
pnpm install # (or npm install or yarn install if you wish)
pnpm i -g commitizen cz-gitmoji
initialize your project to use the cz-conventional-changelog adapter by typing:
# pnpm otherwise go here for more pms https://github.com/commitizen/cz-cli
commitizen init cz-conventional-changelog --pnpm --save-dev --save-exact
set Landish/cz-gitmoji as default adapter globally
echo '{ "path": "cz-gitmoji" }' > ~/.czrc
Usage
Building:
pnpm run build # (or npm run build or yarn build)
This creates a production-ready build of your package.
Committing:
Use git commit
to generate standardized commit messages with cz thanks to this config: