@howells/lint
v0.1.1
Published
Pinned Biome and Ultracite presets for Howells projects.
Readme
@howells/lint
Pinned Biome and Ultracite presets for Howells projects.
The goal is not to invent a second lint philosophy. The goal is to:
- pin a single
@biomejs/biomeversion - pin a single
ultraciteversion - give every consumer the same small preset matrix
- discourage repo-local overrides unless the project has a genuinely unique constraint
Install
pnpm add -D @howells/lintPresets
Choose the closest preset instead of starting from a generic base and patching it locally:
@howells/lint/biome/core@howells/lint/biome/react@howells/lint/biome/next
These presets already:
- pin Biome and Ultracite transitively
- enable VCS ignore file support
- ignore common build output directories
- keep
ignoreUnknownon so mixed repos do not need defensive local config - enforce 2-space indentation consistently
- enable Tailwind CSS directives on DOM-oriented presets
Usage
Node or non-React TypeScript package:
{
"extends": ["@howells/lint/biome/core"]
}React package:
{
"extends": ["@howells/lint/biome/react"]
}Next.js app:
{
"extends": ["@howells/lint/biome/next"]
}Binaries
Installers only need @howells/lint as a direct dependency. Use the package binaries instead of adding @biomejs/biome or ultracite separately:
howells-biomeproxies to the pinned Biome binaryhowells-ultraciteproxies to the pinned Ultracite binaryhowells-lintdefaults tobiome check .howells-formatdefaults tobiome check . --write
Example scripts:
{
"scripts": {
"lint": "howells-lint",
"lint:fix": "howells-format"
}
}Prefer explicit script targets over config churn when the only difference is scope:
{
"scripts": {
"lint": "howells-lint apps/web packages/ui",
"lint:fix": "howells-format apps/web packages/ui"
}
}Rules
- Do not add local overrides just to preserve old ESLint behavior.
- Do not create local
base,shared, orcustomBiome wrappers. - If multiple repos need the same exception, add or adjust a preset here.
- If a repo needs framework-specific linting, choose the matching preset instead of layering rules manually.
- Prefer inline
biome-ignorecomments for truly isolated exceptions over broad config overrides.
Upstream
This package wraps:
