An open API service indexing awesome lists of open source software.

https://github.com/amandaguthrie/template-pnpm-typescript-monorepo

A TypeScript and pnpm monorepo template for publishing multiple packages with changesets and GitHub actions to NPM
https://github.com/amandaguthrie/template-pnpm-typescript-monorepo

monorepo pnpm-monorepo pnpm-workspace template typescript

Last synced: 3 months ago
JSON representation

A TypeScript and pnpm monorepo template for publishing multiple packages with changesets and GitHub actions to NPM

Awesome Lists containing this project

README

        

# template-pnpm-typescript-monorepo

## Highlights

- changesets
- GitHub issue templates
- GitHub quality and release workflows
- pnpm workspace monorepo
- biome
- Top-level build, reset, biome, test, typecheck, and release scripts.
- Typescript

## Initial Configuration

### GitHub Repository

- [ ] Set an NPM auth token as a GitHub secret with key `NPM_TOKEN` to be used to publish to NPM via release workflow.
- [ ] Set a GitHub personal access token as a GitHub secret with key `GH_PAT` to automate changeset pull requests via
release workflow.

### Project Files

#### `.changeset` directory

##### `config.json`

- Update `changelog` settings, including `repo`.

#### `.github` directory

##### `composite-actions/install/action.yml`

- [ ] Update `Setup Git User` command email and name

##### `ISSUE_TEMPLATE` directory

- [ ] Update `config.yml` with repository discussions link

For each template:

- [ ] Update package `options`

##### `workflows` directory

**`quality.yml`**

- Runs on branch `main` for any push or pull request.
- Runs prettier, eslint, and TypeScript type checks.

**`release.yml`**
> [!CAUTION]
> - Requires an NPM auth token to be set as `NPM_TOKEN` in repository secrets to publish to NPM.
> - Requires a GitHub personal access token to be set in repository secrets as `GH_PAT` to automate changeset pull
requests.

- Runs on branch `main` for any pushes that contain changes in `.changeset` or `packages`.
- Builds and publishes packages if there is a changeset version, otherwise releases changes to the `dev` tag.

- [ ] Update repository in if statement to your repo

#### `packages/_template` directory

##### `package.json`

- [ ] Update `name`
- [ ] Update `description`
- [ ] Update `author`
- [ ] Update `repository.url` and `repository.directory`
- [ ] Remove `private` if publishing to registry
- [ ] If npm registry is public, update `publishConfig`