# @ivuorinen/base-configs <!-- omit in toc -->

[![npm package][npm-badge]][npm-link] [![license MIT][license-badge]][license-link] [![ivuorinen's Code Style][style-badge]][style-link]

This is a meta package for all my base configs.

The main reason for this package is to make it easier to use these configs in other projects, and to update them all at once. No more pull requests to update all the configs one at a time!

> A collection of base configs for code quality and linting tools. Heavily based on `@demartini/base-configs`

## Table of Contents <!-- omit in toc -->

- [Usage](#usage)
- [Available Configurations](#available-configurations)
- [Badge](#badge)
- [Contributing](#contributing)
- [Changelog](#changelog)
- [License](#license)

## Usage

```bash
# npm
npm install @ivuorinen/base-configs --save-dev

# yarn
yarn add @ivuorinen/base-configs --dev
```

Requires Node.js `^22.22.2 || ^24.15.0 || >=26`, the floor the bundled tools (commitlint, semantic-release,
markdownlint) set. Node 25 is excluded because `@ivuorinen/markdownlint-config` does not support it.

Each config package ships a `postinstall` script that writes a starter config file when none exists. How that behaves
depends on the package manager:

- **npm** runs it (npm 11 warns that the script is not covered by `allowScripts`).
- **Yarn 4** does not run dependency install scripts, so no config files are written — create them as each package's
  README describes.
- **pnpm** refuses unapproved install scripts and fails the install (`ERR_PNPM_IGNORED_BUILDS`). Run
  `pnpm approve-builds --all`, which records the approvals in `pnpm-workspace.yaml` (pnpm 12):

  ```yaml
  allowBuilds:
    '@ivuorinen/browserslist-config': true
    '@ivuorinen/commitlint-config': true
    '@ivuorinen/eslint-config': true
    '@ivuorinen/markdownlint-config': true
    '@ivuorinen/prettier-config': true
    '@ivuorinen/semantic-release-config': true
    '@ivuorinen/stylelint-config': true
  ```

## Available Configurations

| Tool                                      | Package                                            | GitHub                        | Version                                                                               |
|-------------------------------------------|----------------------------------------------------|-------------------------------|---------------------------------------------------------------------------------------|
| [Browserslist][browserslist-link]         | [@ivuorinen/browserslist-config][pkg-browserslist] | [GitHub][gh-browserslist]     | [![@ivuorinen/browserslist-config][browserslist-badge]][browserslist-npm]             |
| [CommitLint][commitlint-link]             | [@ivuorinen/commitlint-config][pkg-commitlint]     | [GitHub][gh-commitlint]       | [![@ivuorinen/commitlint-config][commitlint-badge]][commitlint-npm]                   |
| [ESLint][eslint-link]                     | [@ivuorinen/eslint-config][pkg-eslint]             | [GitHub][gh-eslint]           | [![@ivuorinen/eslint-config][eslint-badge]][eslint-npm]                               |
| [MarkdownLint][markdownlint-link]         | [@ivuorinen/markdownlint-config][pkg-markdownlint] | [GitHub][gh-markdownlint]     | [![@ivuorinen/markdownlint-config][markdownlint-badge]][markdownlint-npm]             |
| [Prettier][prettier-link]                 | [@ivuorinen/prettier-config][pkg-prettier]         | [GitHub][gh-prettier]         | [![@ivuorinen/prettier-config][prettier-badge]][prettier-npm]                         |
| [semantic-release][semantic-release-link] | [@ivuorinen/semantic-release-config][pkg-src]      | [GitHub][gh-semantic-release] | [![@ivuorinen/semantic-release-config][semantic-release-badge]][semantic-release-npm] |
| [stylelint][stylelint-link]               | [@ivuorinen/stylelint-config][pkg-stylelint]       | [GitHub][gh-stylelint]        | [![@ivuorinen/stylelint-config][stylelint-badge]][stylelint-npm]                      |

[pkg-browserslist]: https://www.npmjs.com/package/@ivuorinen/browserslist-config
[pkg-commitlint]: https://www.npmjs.com/package/@ivuorinen/commitlint-config
[pkg-eslint]: https://www.npmjs.com/package/@ivuorinen/eslint-config
[pkg-markdownlint]: https://www.npmjs.com/package/@ivuorinen/markdownlint-config
[pkg-prettier]: https://www.npmjs.com/package/@ivuorinen/prettier-config
[pkg-src]: https://www.npmjs.com/package/@ivuorinen/semantic-release-config
[pkg-stylelint]: https://www.npmjs.com/package/@ivuorinen/stylelint-config
[gh-browserslist]: https://github.com/ivuorinen/base-configs-browserslist
[gh-commitlint]: https://github.com/ivuorinen/base-configs-commitlint
[gh-eslint]: https://github.com/ivuorinen/base-configs-eslint
[gh-markdownlint]: https://github.com/ivuorinen/base-configs-markdownlint
[gh-prettier]: https://github.com/ivuorinen/base-configs-prettier
[gh-semantic-release]: https://github.com/ivuorinen/base-configs-semantic-release
[gh-stylelint]: https://github.com/ivuorinen/base-configs-stylelint

## Badge

Show the world that you are using ivuorinen's code style in your project by including the badge in your readme.

[![ivuorinen's Code Style](https://img.shields.io/badge/code_style-ivuorinen%E2%80%99s-663399.svg?labelColor=292a44&style=flat-square)](https://github.com/ivuorinen/base-configs)

```md
[![ivuorinen's Code Style](https://img.shields.io/badge/code_style-ivuorinen%E2%80%99s-663399.svg?labelColor=292a44&style=flat-square)](https://github.com/ivuorinen/base-configs)
```

## Contributing

If you are interested in helping contribute, please open an [issue][issue-link] or [pull request][pull-request-link].

## Changelog

See [CHANGELOG][changelog-link] for a human-readable history of changes.

## License

Distributed under the MIT License. See [LICENSE][license-link] for more information.

[changelog-link]: https://github.com/ivuorinen/base-configs/releases
[issue-link]: https://github.com/ivuorinen/base-configs/issues
[license-badge]: https://img.shields.io/github/license/ivuorinen/base-configs?style=flat-square&labelColor=292a44&color=663399
[license-link]: ./LICENSE
[pull-request-link]: https://github.com/ivuorinen/base-configs/pulls
[style-badge]: https://img.shields.io/badge/code_style-ivuorinen%E2%80%99s-663399.svg?labelColor=292a44&style=flat-square
[style-link]: https://github.com/ivuorinen/base-configs
[browserslist-badge]: https://img.shields.io/npm/v/@ivuorinen/browserslist-config?style=flat-square&labelColor=292a44&color=663399
[browserslist-link]: https://github.com/browserslist/browserslist
[browserslist-npm]: https://www.npmjs.com/package/@ivuorinen/browserslist-config
[commitlint-badge]: https://img.shields.io/npm/v/@ivuorinen/commitlint-config?style=flat-square&labelColor=292a44&color=663399
[commitlint-link]: https://github.com/conventional-changelog/commitlint
[commitlint-npm]: https://www.npmjs.com/package/@ivuorinen/commitlint-config
[eslint-badge]: https://img.shields.io/npm/v/@ivuorinen/eslint-config?style=flat-square&labelColor=292a44&color=663399
[eslint-link]: https://github.com/eslint/eslint
[eslint-npm]: https://www.npmjs.com/package/@ivuorinen/eslint-config
[markdownlint-badge]: https://img.shields.io/npm/v/@ivuorinen/markdownlint-config?style=flat-square&labelColor=292a44&color=663399
[markdownlint-link]: https://github.com/DavidAnson/markdownlint
[markdownlint-npm]: https://www.npmjs.com/package/@ivuorinen/markdownlint-config
[prettier-badge]: https://img.shields.io/npm/v/@ivuorinen/prettier-config?style=flat-square&labelColor=292a44&color=663399
[prettier-link]: https://github.com/prettier/prettier
[prettier-npm]: https://www.npmjs.com/package/@ivuorinen/prettier-config
[semantic-release-badge]: https://img.shields.io/npm/v/@ivuorinen/semantic-release-config?style=flat-square&labelColor=292a44&color=663399
[semantic-release-link]: https://github.com/semantic-release/semantic-release
[semantic-release-npm]: https://www.npmjs.com/package/@ivuorinen/semantic-release-config
[stylelint-badge]: https://img.shields.io/npm/v/@ivuorinen/stylelint-config?style=flat-square&labelColor=292a44&color=663399
[stylelint-link]: https://github.com/stylelint/stylelint
[stylelint-npm]: https://www.npmjs.com/package/@ivuorinen/stylelint-config
[npm-badge]: https://img.shields.io/npm/v/@ivuorinen/base-configs?style=flat-square&labelColor=292a44&color=663399
[npm-link]: https://www.npmjs.com/package/@ivuorinen/base-configs
