{"id":26242014,"url":"https://github.com/34j/create-minimal-package","last_synced_at":"2026-02-22T11:28:07.849Z","repository":{"id":281976768,"uuid":"947039000","full_name":"34j/create-minimal-package","owner":"34j","description":"inimalistic npm package template with 📦🚀semantic-release + Commitizen, CodeCov, Renovate, 🐶Husky + Lint Staged + EsLint, 👢Jest, 📖TypeDoc + Github Pages support.","archived":false,"fork":false,"pushed_at":"2025-03-13T03:38:35.000Z","size":160,"stargazers_count":1,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-13T03:49:25.308Z","etag":null,"topics":["commitizen","eslint","github-pages","husky","jest","lint-staged","npm-module","npm-package","npm-package-template","renovate","semantic-release","typedoc","typescript"],"latest_commit_sha":null,"homepage":"https://34j.github.io/create-minimal-package/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/34j.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-12T03:58:58.000Z","updated_at":"2025-03-13T03:43:42.000Z","dependencies_parsed_at":"2025-03-13T03:49:26.972Z","dependency_job_id":"898ecc4f-b1d7-49c4-8db2-0b6e1e4a25d8","html_url":"https://github.com/34j/create-minimal-package","commit_stats":null,"previous_names":["34j/npm-package-template","34j/create-minimal-package"],"tags_count":1,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/34j%2Fcreate-minimal-package","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/34j%2Fcreate-minimal-package/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/34j%2Fcreate-minimal-package/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/34j%2Fcreate-minimal-package/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/34j","download_url":"https://codeload.github.com/34j/create-minimal-package/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243375028,"owners_count":20280795,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["commitizen","eslint","github-pages","husky","jest","lint-staged","npm-module","npm-package","npm-package-template","renovate","semantic-release","typedoc","typescript"],"created_at":"2025-03-13T09:21:03.966Z","updated_at":"2025-12-29T22:17:36.581Z","avatar_url":"https://github.com/34j.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# create-minimal-package\n\nZero-knowledge ***minimalistic*** template for creating a new npm package.\n\n---\n\n**📘Docs Demo**: [https://34j.github.io/create-minimal-package/](https://34j.github.io/create-minimal-package/)\n\n**📦️NPM Package Demo**: [https://www.npmjs.com/package/create-minimal-package](https://www.npmjs.com/package/create-minimal-package)\n\n---\n\n## Features\n\n- The **proof** that the config is ***minimalistic*** is shown below.\n- The main reason (`☆`) of the slight complexity is the need to specify the project structure (`src`, `dist`, `test`).\n\n- 👾Github\n  - [📦🚀semantic-release](https://github.com/semantic-release/semantic-release) \u0026 [Commitizen](https://github.com/search?q=commitizen): from [this article](https://zenn.dev/wakamsha/articles/learn-semantic-release)\n  - [New Issue Templates](https://github.com/34j/create-minimal-package/tree/main/.github/ISSUE_TEMPLATE): from [browniebroke/pypackage-template](https://github.com/browniebroke/pypackage-template/tree/main/.github/ISSUE_TEMPLATE)\n  - [💨GitHub Actions](https://github.com/34j/create-minimal-package/tree/main/.github/workflows) + [📊Codecov](https://about.codecov.io/): npm version of [browniebroke/pypackage-template](https://github.com/browniebroke/pypackage-template/blob/main/.github/workflows/ci.yml)\n  - [🧱Renovate](https://docs.renovatebot.com/): inherits [config:best-practices](https://docs.renovatebot.com/presets-config/#configbest-practices)\n- [⚙TypeScript](https://www.typescriptlang.org/):`tsconfig.json`: inherits [@tsconfig/strictest](https://www.npmjs.com/package/@tsconfig/strictest): 4 lines for `☆`, [3 lines for ES types](https://youtu.be/H91aqUHn8sE?t=148)\n- ✨️Formatting\n  - [⚠️pre-commit](https://pre-commit.com/) and [pre-commit.ci](https://pre-commit.ci/): from [browniebroke/pypackage-template](https://github.com/browniebroke/pypackage-template/tree/main/.github/ISSUE_TEMPLATE) + [mirrors-eslint](https://github.com/pre-commit/mirrors-eslint) (⏪️[🐶Husky](https://github.com/typicode/husky) + [Lint Staged](https://github.com/okonet/lint-staged) for better CI support)\n  - [ESLint](https://eslint.org/): inherits [@antfu/eslint-config](https://www.npmjs.com/package/@antfu/eslint-config)\n- 📦Packageing\n  - [pnpm](https://pnpm.io/) (⏪️npm)\n  - [🛡️Trusted Publishing](https://docs.npmjs.com/trusted-publishers)\n- ⚠️ Testing\n  - [⚡️Vitest](https://vitest.dev/) (⏪️[👢Jest](https://jestjs.io/)): several lines for browser testing (optional, can be removed if Node.js only)\n- 📖Documentation\n  - [🌐GitHub Pages](https://pages.github.com/)\n  - [📖TypeDoc](https://typedoc.org/): 2 lines for `☆` `P`\n- ❄Nix Support (Optional, only needed for Nix users)\n  - [❄`nix develop --ignore-environment`](https://nix.dev/manual/nix/latest/command-ref/new-cli/nix3-develop): many lines for Playwright support (optional, can be removed if Node.js only)\n\n\u003cdetails\u003e\n\u003csummary\u003eRemoved Features (to achieve minimalism)\u003c/summary\u003e\n\n- Removed Commitizen integration and VS Code stuff (from [ryansonshine/typescript-npm-package-template](https://github.com/ryansonshine/typescript-npm-package-template)) because it's not maintained and complex. Commitizen can be still used (Semantic Release supports it natively).\n- Removed Prettier due to [@antfu/eslint-config's opinions](https://github.com/antfu/eslint-config?tab=readme-ov-file#prettier) and [mirrors-prettier](https://github.com/pre-commit/mirrors-prettier) being archived.\n\n\u003c/details\u003e\n\n## Quickstart (Copier)\n\n```shell\nuvx copier copy --trust \"gh:34j/create-minimal-package\" --vcs-ref main my-cool-package\n🎤 What is your project name?\n   my-cool-package\n🎤 What is your GitHub username?\n   34j\n```\n\n## Quickstart (GitHub Template)\n\n0. Run `npx setup-npm-trusted-publish my-cool-package` to reserve the package name and allow trusted publishing.\n1. Click the \"Use this template\" button.\n2. Replace `GITHUB_USER` and `REPO_NAME` using `sed`:\n  ```bash\n  GITHUB_USER=\"johnsmith\"\n  REPO_NAME=\"my-cool-package\"\n  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\n  sed -i.tmp 's/\"version\": \"[0-9.]*\"/\"version\": \"0.0.0\"/' package.json\n  rm *.tmp\n  rm src/*.tmp\n  rm CHANGELOG.md\n  rm *.jinja\n  ```\n3. Install GitHub Apps, [pre-commit.ci **lite**](https://github.com/apps/pre-commit-ci-lite/installations/select_target) and [Codecov](https://github.com/apps/codecov/installations/select_target).\n4. Install [pre-commit](https://pre-commit.com/) using [`uv`](https://github.com/astral-sh/uv) by `uv tool install pre-commit` and install hooks by `pre-commit install`.\n5. Enable Github Pages and set `Source` to `GitHub Actions` from [`Settings/Pages/Build and deployment`](https://github.com/34j/create-minimal-package/settings/pages)\n6. Remove everything above `---`.\n\n\u003e Inspired by [node-module-boilerplate](https://github.com/sindresorhus/node-module-boilerplate) and [typescript-npm-package-template](https://github.com/Atry/typescript-npm-package-template/tree/main), which is great but unnecessarily complex and poorly maintained.\n\n- Enable [Token authentication for public repositories](https://docs.codecov.com/docs/codecov-tokens#uploading-without-a-token) to upload coverage reports without a token.\n\n---\n---\n\n# create-minimal-package\n\n[![npm package][npm-img]][npm-url]\n[![Build Status][build-img]][build-url]\n[![Downloads][downloads-img]][downloads-url]\n[![Issues][issues-img]][issues-url]\n[![Code Coverage][codecov-img]][codecov-url]\n[![Commitizen Friendly][commitizen-img]][commitizen-url]\n[![Semantic Release][semantic-release-img]][semantic-release-url]\n\n---\n\n**📘Documentation**: [https://34j.github.io/create-minimal-package/](https://34j.github.io/create-minimal-package/)\n\n**📦️NPM Package**: [https://www.npmjs.com/package/create-minimal-package](https://www.npmjs.com/package/create-minimal-package)\n\n---\n\nTODO: Project Description.\n\n## Installation\n\n```bash\nnpm install create-minimal-package\n```\n\n## Usage\n\n```ts\nimport { myPackage } from 'create-minimal-package'\n\nmyPackage('hello')\n// =\u003e 'hello from my package'\n```\n\n[build-img]:https://github.com/34j/create-minimal-package/actions/workflows/release.yml/badge.svg\n[build-url]:https://github.com/34j/create-minimal-package/actions/workflows/release.yml\n[downloads-img]:https://img.shields.io/npm/dt/create-minimal-package\n[downloads-url]:https://www.npmtrends.com/create-minimal-package\n[npm-img]:https://img.shields.io/npm/v/create-minimal-package\n[npm-url]:https://www.npmjs.com/package/create-minimal-package\n[issues-img]:https://img.shields.io/github/issues/34j/create-minimal-package\n[issues-url]:https://github.com/34j/create-minimal-package/issues\n[codecov-img]:https://codecov.io/gh/34j/create-minimal-package/branch/main/graph/badge.svg\n[codecov-url]:https://codecov.io/gh/34j/create-minimal-package\n[semantic-release-img]:https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\n[semantic-release-url]:https://github.com/semantic-release/semantic-release\n[commitizen-img]:https://img.shields.io/badge/commitizen-friendly-brightgreen.svg\n[commitizen-url]:http://commitizen.github.io/cz-cli/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F34j%2Fcreate-minimal-package","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F34j%2Fcreate-minimal-package","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F34j%2Fcreate-minimal-package/lists"}