- TypeScript
- ESLint + Prettier: Coding Style & Formatter
- Husky + Lint-staged: Pre-commit hooks
- Airbnb Coding Style
- Auto organize imports.
- Auto sort imports and object keys.
- Rollup: Bundle the package
- Vitest: Tests and Coverage
- Semantic Release: Auto versioning, Changelog and Release
- @semantic-release/changelog: Generate changelog based on the commit messages
- @semantic-release/github: Create a release on GitHub
- @semantic-release/npm: Publish the package to npm & update the package version
- @semantic-release/git: Commit the version change back to the repository
- CodeCov: Code coverage
- Typedoc: API documentation
- GitHub Actions: CI/CD
Click the Use this template
button on the top right corner of the repository page.
Just clone your repo and install the dependencies with any package manager you like. This template does not strong bind to any package manager, but the used package manager in GitHub Actions workflow is pnpm
. You may need to modify the workflow file if you use other package managers.
There are few places you need to modify to fit your project, like package.json
, README.md
. You can use the following command to replace most of the content:
YOUR_GITHUB_USER="your-user-name"
YOUR_REPO_NAME="your-awesome-package-name"
sed -i "s/moontai0724/${YOUR_GITHUB_USER}/g" package.json README.md .github/workflows/*
sed -i "s/package-template/${YOUR_REPO_NAME}/g" package.json README.md .github/workflows/*
This template uses CodeCov to check the code coverage. You can remove the CodeCov badge and the related scripts in package.json
if you don't need it.
If you want to use CodeCov, you need to set the CODECOV_TOKEN
in the repository secrets.
Once you done, you can push your codes to the release
branch.
The actions in this template will auto perform following steps when you push the code to the release
branch:
- Test: Run tests and generate coverage report
- Build: Generate bundled and minified esm, cjs version (for browser), and unminified esm version (for node).
- Release: Bump Version & Generate Changelog
- Publish the package to npm
- Publish docs to GitHub Pages: You may need to setup the GitHub Pages in the repository settings.
You can modify the workflow file to fit your needs.
npm install @moontai0724/package-template
yarn add @moontai0724/package-template
pnpm add @moontai0724/package-template
import { add, divide, max } from "@moontai0724/package-template";
add(1, 2); // 3
divide(1, 2); // 0.5
max(1, 2); // 2
See the API documentation.