Skip to content
/ create-minimal-package Public template

Minimalistic npm package template with 📦🚀semantic-release + Commitizen, CodeCov, Renovate, pre-commit + EsLint (✗🐶Husky + Lint Staged), ⚡️Vitest (✗👢Jest), 📖TypeDoc + Github Pages support.

License

Notifications You must be signed in to change notification settings

34j/create-minimal-package

Repository files navigation

create-minimal-package

Zero-knowledge minimalistic template for creating a new npm package.


📘Docs Demo: https://34j.github.io/create-minimal-package/

📦️NPM Package Demo: https://www.npmjs.com/package/create-minimal-package


Features

Removed Features (to achieve minimalism)

Quickstart

  1. Click the "Use this template" button.
  2. Replace GITHUB_USER and REPO_NAME using sed:
GITHUB_USER="johnsmith"
REPO_NAME="my-cool-package"
sed -i.tmp "s/\([^@]\)34j/\1$GITHUB_USER/g; s/create-minimal-package\|my-package-name/$REPO_NAME/g;" package.json src/index.ts README.md
sed -i.tmp 's/"version": "[0-9.]*"/"version": "0.0.0"/' package.json
rm *.tmp
rm src/*.tmp
rm CHANGELOG.md
  1. Create and add NPM_TOKEN to Settings/Secrets and variables/Actions/Repository secrets.
  2. Create and add CODECOV_TOKEN to Settings/Secrets and variables/Actions/Repository secrets.
  3. Install GitHub Apps, pre-commit.ci lite and Codecov.
  4. Install pre-commit using uv by uv tool install pre-commit and install hooks by pre-commit install.
  5. Enable Github Pages and set Source to GitHub Actions from Settings/Pages/Build and deployment
  6. Remove everything above ---.

Inspired by node-module-boilerplate and typescript-npm-package-template, which is great but unnecessarily complex and poorly maintained.


create-minimal-package

npm package Build Status Downloads Issues Code Coverage Commitizen Friendly Semantic Release


📘Documentation: https://34j.github.io/create-minimal-package/

📦️NPM Package: https://www.npmjs.com/package/create-minimal-package


TODO: Project Description.

Installation

npm install create-minimal-package

Usage

import { myPackage } from 'create-minimal-package'

myPackage('hello')
// => 'hello from my package'