Shareable JavaScript and Node.js tooling configuration packages by Andrew Mason.
This is a lightweight pnpm workspace monorepo. Each package is independently versioned and published to npm. The root package is private and exists only for development tooling, CI, and release automation.
| Package | Description |
|---|---|
@andrewmcodes/prettier-config |
Shareable Prettier configuration. |
@andrewmcodes/commitlint-config |
Shareable commitlint configuration. |
This repo uses mise to provision Node.js (pinned in .node-version) and to enable Corepack, which installs the pnpm version pinned in package.json. pnpm manages the workspace.
mise install # installs Node.js and enables Corepack-managed pnpm
pnpm installCommon checks:
pnpm lint
pnpm test
pnpm format:checkFix formatting:
pnpm formatVersioning and publishing are handled by Changesets.
- Make a change to a package.
- Run
pnpm changesetand describe the change. - Open a pull request including the generated changeset.
- CI validates install, lint, test, format, and changeset status.
- After merge to
main, Changesets opens a release PR that bumps versions and updates changelogs. - Merging the release PR publishes the changed packages to npm via Trusted Publishing with provenance.
The root package is never published, and only changed packages are released.
- Use Conventional Commits for commit messages.
- Add a changeset for any user-facing package change.
- Keep packages small, directly publishable, and free of unnecessary build steps.
See AGENTS.md for the full repository rules.
MIT © Andrew Mason
